diff --git a/.eslintignore b/.eslintignore
index 51d0fb62e7..bca24df585 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -3,9 +3,9 @@ scripts/htm.js
scripts/acdl
tools/picker
tools/pdp-metadata
-scripts/dropins
scripts/__dropins__
scripts/commerce-events-collector.js
scripts/commerce-events-sdk.js
scripts/widgets
plugins/
+cypress/
\ No newline at end of file
diff --git a/.eslintrc.js b/.eslintrc.js
index 34c6b71107..d8d2e468ad 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -14,5 +14,13 @@ module.exports = {
'import/extensions': ['error', { js: 'always' }], // require js file extensions in imports
'linebreak-style': ['error', 'unix'], // enforce unix linebreaks
'no-param-reassign': [2, { props: false }], // allow modifying properties of param
+ 'no-use-before-define': [2, { functions: false }],
+ 'no-console': [
+ 'error',
+ {
+ allow: ['warn', 'error', 'info', 'debug'],
+ },
+ ],
+ 'no-unused-vars': ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }],
},
};
diff --git a/.github/workflows/run-e2e-tests.yaml b/.github/workflows/run-e2e-tests.yaml
new file mode 100644
index 0000000000..5d7ad5e26b
--- /dev/null
+++ b/.github/workflows/run-e2e-tests.yaml
@@ -0,0 +1,25 @@
+name: Cypress E2E Tests
+on: push
+jobs:
+ cypress-run:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install root dependencies
+ run: npm ci
+ - name: Start server in the background
+ run: npm start &
+
+ - name: Install Cypress and run tests
+ uses: cypress-io/github-action@v6
+ with:
+ working-directory: cypress
+ browser: chrome
+ wait-on: 'http://localhost:3000'
+ config: baseUrl=http://localhost:3000
+ - uses: actions/upload-artifact@v4
+ if: failure()
+ with:
+ name: cypress-screenshots
+ path: cypress/screenshots
+ if-no-files-found: ignore
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index a840bb9670..080e4ef3bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,4 @@ helix-importer-ui
*.bak
.idea
# Ignore .map files in scripts/__dropins__/ directory and all its subdirectories
-scripts/__dropins__/**/*.map
\ No newline at end of file
+scripts/__dropins__/**/*.map
diff --git a/.hlxignore b/.hlxignore
index a630daae5a..b9f27314f7 100644
--- a/.hlxignore
+++ b/.hlxignore
@@ -1,10 +1,13 @@
.*
*.md
+*.d.ts
karma.config.js
LICENSE
package.json
package-lock.json
test/*
postinstall.js
+build.mjs
tools/picker/src/*
+cypress/
tools/pdp-metadata/*
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000000..1a1231825f
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1,2 @@
+; force @adobe namespaced packages to be installed from npmjs.org
+@adobe:registry=https://registry.npmjs.org
diff --git a/404.html b/404.html
index 0061e2de42..94288e04da 100644
--- a/404.html
+++ b/404.html
@@ -7,7 +7,8 @@
{
"imports": {
"@dropins/tools/": "/scripts/__dropins__/tools/",
- "@dropins/storefront-pdp/": "/scripts/__dropins__/storefront-pdp/"
+ "@dropins/storefront-cart/": "/scripts/__dropins__/storefront-cart/",
+ "@dropins/storefront-auth/": "/scripts/__dropins__/storefront-auth/"
}
}
@@ -41,9 +42,13 @@