diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 1afbd06324..d56d58c9d0 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -147,7 +147,7 @@ jobs: wait-on: 'http://localhost:4200' wait-on-timeout: 180 working-directory: e2e - command: node cypress-ci-e2e **/*${{ matrix.test }}*.e2e-spec.ts + command: npx ts-node cypress-ci-e2e **/*${{ matrix.test }}*.e2e-spec.ts - name: Upload Screenshots uses: actions/upload-artifact@v2 diff --git a/docs/concepts/testing.md b/docs/concepts/testing.md index b7d00089c0..fcc208ef09 100644 --- a/docs/concepts/testing.md +++ b/docs/concepts/testing.md @@ -52,7 +52,7 @@ As a basic rule of thumb we only test happy path functionality or workflows that Unit and module tests are closely located next to the production source code in the _src_ folder. -Integration and end-to-end tests currently reside in _cypress/integration/specs_. _PageObjects_ are located in _cypress/integration/pages_. +Integration and end-to-end tests currently reside in _cypress/e2e/specs_. _PageObjects_ are located in _cypress/e2e/pages_. If the filename of a spec contains the string `mock`, it is run as an integration test with mocked server API. If it (additionally) contains `b2c` or `b2b` the test also should run on the PWA set up with the corresponding channel. diff --git a/docs/guides/migrations.md b/docs/guides/migrations.md index 84a4110272..e7cc01f36c 100644 --- a/docs/guides/migrations.md +++ b/docs/guides/migrations.md @@ -29,6 +29,10 @@ Because Angular 14 now uses `yargs` to parse CLI arguments (see [#22778](https:/ With [#23405](https://github.com/angular/angular-cli/pull/23405), the Angular team has introduced a temporary workaround for this. In order to reliably maintain compatibility in the future, the `cms` schematic's `noCMSPrefixing` option has been renamed to `cmsPrefixing` with an inverted behavior. +Cypress has been upgraded from version 9 to 10. +We went through the interactive migration to move our spec files from cypress/integration folder to the cypress/e2e folder and updated the config file as well as some scripts. +Find more information in the [Cypress Migration Guide](https://docs.cypress.io/guides/references/migration-guide#Migrating-to-Cypress-version-10-0). + Since the used deferred load library is no longer maintained it is removed and replaced with similar standard browser functionality [`loading="lazy"`](https://developer.mozilla.org/en-US/docs/Web/Performance/Lazy_loading#images_and_iframes). All uses of the `(deferLoad)` directive in custom code need to be replaced. diff --git a/docs/guides/testing-cypress.md b/docs/guides/testing-cypress.md index adc6a79798..0d3197406b 100644 --- a/docs/guides/testing-cypress.md +++ b/docs/guides/testing-cypress.md @@ -64,7 +64,7 @@ Add the following to the [CoreModule providers](../../src/app/core/core.module.t ``` That way each network response will be delayed randomly from 500 to 2000 ms. -To be able to run tests locally now, the `defaultCommandTimeout` in [cypress.json](../../e2e/cypress.json) probably has to be increased. +To be able to run tests locally now, the `defaultCommandTimeout` in [cypress.config.ts](../../e2e/cypress.config.ts) probably has to be increased. # Further References diff --git a/e2e/cypress-ci-e2e.js b/e2e/cypress-ci-e2e.ts similarity index 77% rename from e2e/cypress-ci-e2e.js rename to e2e/cypress-ci-e2e.ts index 6bb7d6c754..15b1e8491a 100644 --- a/e2e/cypress-ci-e2e.js +++ b/e2e/cypress-ci-e2e.ts @@ -1,15 +1,19 @@ +/* eslint-disable no-console */ /* * adapted from https://gist.github.com/Bkucera/4ffd05f67034176a00518df251e19f58 * * referenced by open cypress issue https://github.com/cypress-io/cypress/issues/1313 */ -const _ = require('lodash'); -const fs = require('fs'); -const cypress = require('cypress'); +import * as cypress from 'cypress'; +import * as _ from 'lodash'; + +import config from './cypress.config'; const MAX_NUM_RUNS = 4; + const BROWSER = process.env.BROWSER || 'chrome'; + const TEST_FILES = process.argv.length > 2 ? process.argv[2].split(',') : undefined; if (!process.env.PWA_BASE_URL) { @@ -26,20 +30,22 @@ const DEFAULT_CONFIG = { browser: BROWSER, defaultCommandTimeout: 15000, reporter: 'junit', - reporterOptions: 'mochaFile=reports/e2e-remote-[hash]-report.xml,includePending=true', + reporterOptions: { mochaFile: 'reports/e2e-remote-[hash]-report.xml', includePending: true }, numTestsKeptInMemory: 1, watchForFileChanges: false, config: { - ...JSON.parse(fs.readFileSync('cypress.json')), - baseUrl: process.env.PWA_BASE_URL, + ...config, + e2e: { ...config.e2e, baseUrl: process.env.PWA_BASE_URL }, pageLoadTimeout: 180000, trashAssetsBeforeRuns: true, video: false, }, - env: { ICM_BASE_URL: process.env.ICM_BASE_URL }, + group: undefined, + spec: undefined, + env: { ICM_BASE_URL: process.env.ICM_BASE_URL, numRuns: 0 }, }; -const checkMaxRunsReached = (num, noOfSpecs) => { +const checkMaxRunsReached = (num: number, noOfSpecs: number) => { // retry a single flaky test more often if ((num >= MAX_NUM_RUNS && noOfSpecs !== 1) || num >= 2 * MAX_NUM_RUNS) { console.log(`Ran a total of '${num}' times but still have failures. Exiting...`); @@ -47,14 +53,19 @@ const checkMaxRunsReached = (num, noOfSpecs) => { } }; -const newGroupName = num => { +const newGroupName = (num: number) => { // If we're using parallelization, set a new group name if (DEFAULT_CONFIG.group) { return `${DEFAULT_CONFIG.group}: retry #${num}`; } }; -const run = (num, spec, retryGroup) => { +const run = ( + num: number, + spec, + retryGroup?: string +): Promise => { + /* eslint-disable-next-line no-param-reassign */ num += 1; let config = _.cloneDeep(DEFAULT_CONFIG); config = { ...config, env: { ...config.env, numRuns: num } }; @@ -70,7 +81,7 @@ const run = (num, spec, retryGroup) => { return cypress .run(config) .then(results => { - if (results.failures) { + if (results.status === 'failed') { throw new Error(results.message); } else if (results.totalFailed) { // rerun again with only the failed tests @@ -83,7 +94,7 @@ const run = (num, spec, retryGroup) => { .flatten() .filter('error') .value() - .map(result => ({ title: result.title.join(' > '), error: result.error })) + .map(result => ({ title: result.title.join(' > '), error: result.displayError })) .forEach(result => console.warn(result.title, '\n', result.error, '\n')); checkMaxRunsReached(num, specs.length); diff --git a/e2e/cypress.config.ts b/e2e/cypress.config.ts new file mode 100644 index 0000000000..b29683630b --- /dev/null +++ b/e2e/cypress.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from 'cypress'; + +export default defineConfig({ + viewportWidth: 1024, + viewportHeight: 1500, + video: false, + videoUploadOnPasses: false, + defaultCommandTimeout: 8000, + requestTimeout: 30000, + responseTimeout: 30000, + chromeWebSecurity: false, + e2e: { + // We've imported your old cypress plugins here. + // You may want to clean this up later by importing these. + setupNodeEvents(on: Cypress.PluginEvents, config: Cypress.PluginConfigOptions) { + /* eslint-disable-next-line @typescript-eslint/no-var-requires */ + return require('./cypress/plugins/index.js')(on, config); + }, + baseUrl: 'http://localhost:4200', + specPattern: 'cypress/e2e/**/*.e2e-spec.ts', + }, +}); diff --git a/e2e/cypress.json b/e2e/cypress.json deleted file mode 100644 index 89336a473b..0000000000 --- a/e2e/cypress.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "baseUrl": "http://localhost:4200", - "viewportWidth": 1024, - "viewportHeight": 1500, - "video": false, - "videoUploadOnPasses": false, - "testFiles": "**/*.e2e-spec.ts", - "defaultCommandTimeout": 8000, - "requestTimeout": 30000, - "responseTimeout": 30000, - "modifyObstructiveCode": false, - "chromeWebSecurity": false -} diff --git a/e2e/cypress/.eslintrc.json b/e2e/cypress/.eslintrc.json index db7a30efa6..db46559fc5 100644 --- a/e2e/cypress/.eslintrc.json +++ b/e2e/cypress/.eslintrc.json @@ -28,9 +28,9 @@ { "warnUnmatched": false, "pathPatterns": [ - ".*/integration/framework/.*/*\\.ts", - ".*/integration/pages/.*\\.(module|page|dialog)\\.ts", - ".*/integration/specs/\\w+/[^/]*\\.e2e-spec\\.ts" + ".*/e2e/framework/.*/*\\.ts", + ".*/e2e/pages/.*\\.(module|page|dialog)\\.ts", + ".*/e2e/specs/\\w+/[^/]*\\.e2e-spec\\.ts" ] } ], diff --git a/e2e/cypress/integration/framework/b2b-user.ts b/e2e/cypress/e2e/framework/b2b-user.ts similarity index 100% rename from e2e/cypress/integration/framework/b2b-user.ts rename to e2e/cypress/e2e/framework/b2b-user.ts diff --git a/e2e/cypress/integration/framework/index.ts b/e2e/cypress/e2e/framework/index.ts similarity index 100% rename from e2e/cypress/integration/framework/index.ts rename to e2e/cypress/e2e/framework/index.ts diff --git a/e2e/cypress/integration/framework/users.ts b/e2e/cypress/e2e/framework/users.ts similarity index 100% rename from e2e/cypress/integration/framework/users.ts rename to e2e/cypress/e2e/framework/users.ts diff --git a/e2e/cypress/integration/pages/account/add-to-order-template.module.ts b/e2e/cypress/e2e/pages/account/add-to-order-template.module.ts similarity index 100% rename from e2e/cypress/integration/pages/account/add-to-order-template.module.ts rename to e2e/cypress/e2e/pages/account/add-to-order-template.module.ts diff --git a/e2e/cypress/integration/pages/account/add-to-wishlist.module.ts b/e2e/cypress/e2e/pages/account/add-to-wishlist.module.ts similarity index 100% rename from e2e/cypress/integration/pages/account/add-to-wishlist.module.ts rename to e2e/cypress/e2e/pages/account/add-to-wishlist.module.ts diff --git a/e2e/cypress/integration/pages/account/login.page.ts b/e2e/cypress/e2e/pages/account/login.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/login.page.ts rename to e2e/cypress/e2e/pages/account/login.page.ts diff --git a/e2e/cypress/integration/pages/account/my-account.page.ts b/e2e/cypress/e2e/pages/account/my-account.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/my-account.page.ts rename to e2e/cypress/e2e/pages/account/my-account.page.ts diff --git a/e2e/cypress/integration/pages/account/order-templates-details.page.ts b/e2e/cypress/e2e/pages/account/order-templates-details.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/order-templates-details.page.ts rename to e2e/cypress/e2e/pages/account/order-templates-details.page.ts diff --git a/e2e/cypress/integration/pages/account/order-templates-overview.page.ts b/e2e/cypress/e2e/pages/account/order-templates-overview.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/order-templates-overview.page.ts rename to e2e/cypress/e2e/pages/account/order-templates-overview.page.ts diff --git a/e2e/cypress/integration/pages/account/payment.page.ts b/e2e/cypress/e2e/pages/account/payment.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/payment.page.ts rename to e2e/cypress/e2e/pages/account/payment.page.ts diff --git a/e2e/cypress/integration/pages/account/profile-edit-company.page.ts b/e2e/cypress/e2e/pages/account/profile-edit-company.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/profile-edit-company.page.ts rename to e2e/cypress/e2e/pages/account/profile-edit-company.page.ts diff --git a/e2e/cypress/integration/pages/account/profile-edit-details.page.ts b/e2e/cypress/e2e/pages/account/profile-edit-details.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/profile-edit-details.page.ts rename to e2e/cypress/e2e/pages/account/profile-edit-details.page.ts diff --git a/e2e/cypress/integration/pages/account/profile-edit-email.page.ts b/e2e/cypress/e2e/pages/account/profile-edit-email.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/profile-edit-email.page.ts rename to e2e/cypress/e2e/pages/account/profile-edit-email.page.ts diff --git a/e2e/cypress/integration/pages/account/profile-edit-password.page.ts b/e2e/cypress/e2e/pages/account/profile-edit-password.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/profile-edit-password.page.ts rename to e2e/cypress/e2e/pages/account/profile-edit-password.page.ts diff --git a/e2e/cypress/integration/pages/account/profile.page.ts b/e2e/cypress/e2e/pages/account/profile.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/profile.page.ts rename to e2e/cypress/e2e/pages/account/profile.page.ts diff --git a/e2e/cypress/integration/pages/account/punchout-create.page.ts b/e2e/cypress/e2e/pages/account/punchout-create.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/punchout-create.page.ts rename to e2e/cypress/e2e/pages/account/punchout-create.page.ts diff --git a/e2e/cypress/integration/pages/account/punchout-edit.page.ts b/e2e/cypress/e2e/pages/account/punchout-edit.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/punchout-edit.page.ts rename to e2e/cypress/e2e/pages/account/punchout-edit.page.ts diff --git a/e2e/cypress/integration/pages/account/punchout-overview.page.ts b/e2e/cypress/e2e/pages/account/punchout-overview.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/punchout-overview.page.ts rename to e2e/cypress/e2e/pages/account/punchout-overview.page.ts diff --git a/e2e/cypress/integration/pages/account/quote-detail.page.ts b/e2e/cypress/e2e/pages/account/quote-detail.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/quote-detail.page.ts rename to e2e/cypress/e2e/pages/account/quote-detail.page.ts diff --git a/e2e/cypress/integration/pages/account/quote-list.page.ts b/e2e/cypress/e2e/pages/account/quote-list.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/quote-list.page.ts rename to e2e/cypress/e2e/pages/account/quote-list.page.ts diff --git a/e2e/cypress/integration/pages/account/registration.page.ts b/e2e/cypress/e2e/pages/account/registration.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/registration.page.ts rename to e2e/cypress/e2e/pages/account/registration.page.ts diff --git a/e2e/cypress/integration/pages/account/wishlists-details.page.ts b/e2e/cypress/e2e/pages/account/wishlists-details.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/wishlists-details.page.ts rename to e2e/cypress/e2e/pages/account/wishlists-details.page.ts diff --git a/e2e/cypress/integration/pages/account/wishlists-overview.page.ts b/e2e/cypress/e2e/pages/account/wishlists-overview.page.ts similarity index 100% rename from e2e/cypress/integration/pages/account/wishlists-overview.page.ts rename to e2e/cypress/e2e/pages/account/wishlists-overview.page.ts diff --git a/e2e/cypress/integration/pages/breadcrumb.module.ts b/e2e/cypress/e2e/pages/breadcrumb.module.ts similarity index 100% rename from e2e/cypress/integration/pages/breadcrumb.module.ts rename to e2e/cypress/e2e/pages/breadcrumb.module.ts diff --git a/e2e/cypress/integration/pages/checkout/cart.page.ts b/e2e/cypress/e2e/pages/checkout/cart.page.ts similarity index 100% rename from e2e/cypress/integration/pages/checkout/cart.page.ts rename to e2e/cypress/e2e/pages/checkout/cart.page.ts diff --git a/e2e/cypress/integration/pages/checkout/checkout-addresses.page.ts b/e2e/cypress/e2e/pages/checkout/checkout-addresses.page.ts similarity index 100% rename from e2e/cypress/integration/pages/checkout/checkout-addresses.page.ts rename to e2e/cypress/e2e/pages/checkout/checkout-addresses.page.ts diff --git a/e2e/cypress/integration/pages/checkout/checkout-payment.page.ts b/e2e/cypress/e2e/pages/checkout/checkout-payment.page.ts similarity index 100% rename from e2e/cypress/integration/pages/checkout/checkout-payment.page.ts rename to e2e/cypress/e2e/pages/checkout/checkout-payment.page.ts diff --git a/e2e/cypress/integration/pages/checkout/checkout-receipt.page.ts b/e2e/cypress/e2e/pages/checkout/checkout-receipt.page.ts similarity index 100% rename from e2e/cypress/integration/pages/checkout/checkout-receipt.page.ts rename to e2e/cypress/e2e/pages/checkout/checkout-receipt.page.ts diff --git a/e2e/cypress/integration/pages/checkout/checkout-review.page.ts b/e2e/cypress/e2e/pages/checkout/checkout-review.page.ts similarity index 100% rename from e2e/cypress/integration/pages/checkout/checkout-review.page.ts rename to e2e/cypress/e2e/pages/checkout/checkout-review.page.ts diff --git a/e2e/cypress/integration/pages/checkout/checkout-shipping.page.ts b/e2e/cypress/e2e/pages/checkout/checkout-shipping.page.ts similarity index 100% rename from e2e/cypress/integration/pages/checkout/checkout-shipping.page.ts rename to e2e/cypress/e2e/pages/checkout/checkout-shipping.page.ts diff --git a/e2e/cypress/integration/pages/checkout/line-item-dialog.page.ts b/e2e/cypress/e2e/pages/checkout/line-item-dialog.page.ts similarity index 100% rename from e2e/cypress/integration/pages/checkout/line-item-dialog.page.ts rename to e2e/cypress/e2e/pages/checkout/line-item-dialog.page.ts diff --git a/e2e/cypress/integration/pages/checkout/mini-cart.module.ts b/e2e/cypress/e2e/pages/checkout/mini-cart.module.ts similarity index 100% rename from e2e/cypress/integration/pages/checkout/mini-cart.module.ts rename to e2e/cypress/e2e/pages/checkout/mini-cart.module.ts diff --git a/e2e/cypress/integration/pages/contact/contact-confirmation.page.ts b/e2e/cypress/e2e/pages/contact/contact-confirmation.page.ts similarity index 100% rename from e2e/cypress/integration/pages/contact/contact-confirmation.page.ts rename to e2e/cypress/e2e/pages/contact/contact-confirmation.page.ts diff --git a/e2e/cypress/integration/pages/contact/contact.page.ts b/e2e/cypress/e2e/pages/contact/contact.page.ts similarity index 100% rename from e2e/cypress/integration/pages/contact/contact.page.ts rename to e2e/cypress/e2e/pages/contact/contact.page.ts diff --git a/e2e/cypress/integration/pages/footer.module.ts b/e2e/cypress/e2e/pages/footer.module.ts similarity index 100% rename from e2e/cypress/integration/pages/footer.module.ts rename to e2e/cypress/e2e/pages/footer.module.ts diff --git a/e2e/cypress/integration/pages/header.module.ts b/e2e/cypress/e2e/pages/header.module.ts similarity index 100% rename from e2e/cypress/integration/pages/header.module.ts rename to e2e/cypress/e2e/pages/header.module.ts diff --git a/e2e/cypress/integration/pages/home.page.ts b/e2e/cypress/e2e/pages/home.page.ts similarity index 100% rename from e2e/cypress/integration/pages/home.page.ts rename to e2e/cypress/e2e/pages/home.page.ts diff --git a/e2e/cypress/integration/pages/meta-data.module.ts b/e2e/cypress/e2e/pages/meta-data.module.ts similarity index 100% rename from e2e/cypress/integration/pages/meta-data.module.ts rename to e2e/cypress/e2e/pages/meta-data.module.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/cost-center-buyers.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/cost-center-buyers.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/cost-center-buyers.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/cost-center-buyers.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/cost-center-create.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/cost-center-create.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/cost-center-create.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/cost-center-create.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/cost-center-detail.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/cost-center-detail.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/cost-center-detail.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/cost-center-detail.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/cost-center-edit.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/cost-center-edit.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/cost-center-edit.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/cost-center-edit.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/cost-centers.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/cost-centers.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/cost-centers.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/cost-centers.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/user-create.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/user-create.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/user-create.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/user-create.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/user-edit-budget.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/user-edit-budget.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/user-edit-budget.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/user-edit-budget.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/user-edit-roles.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/user-edit-roles.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/user-edit-roles.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/user-edit-roles.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/user-edit.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/user-edit.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/user-edit.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/user-edit.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/users-detail.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/users-detail.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/users-detail.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/users-detail.page.ts diff --git a/e2e/cypress/integration/pages/organizationmanagement/users.page.ts b/e2e/cypress/e2e/pages/organizationmanagement/users.page.ts similarity index 100% rename from e2e/cypress/integration/pages/organizationmanagement/users.page.ts rename to e2e/cypress/e2e/pages/organizationmanagement/users.page.ts diff --git a/e2e/cypress/integration/pages/quickorder/quickorder.page.ts b/e2e/cypress/e2e/pages/quickorder/quickorder.page.ts similarity index 100% rename from e2e/cypress/integration/pages/quickorder/quickorder.page.ts rename to e2e/cypress/e2e/pages/quickorder/quickorder.page.ts diff --git a/e2e/cypress/integration/pages/server-error.page.ts b/e2e/cypress/e2e/pages/server-error.page.ts similarity index 100% rename from e2e/cypress/integration/pages/server-error.page.ts rename to e2e/cypress/e2e/pages/server-error.page.ts diff --git a/e2e/cypress/integration/pages/shopping/category.page.ts b/e2e/cypress/e2e/pages/shopping/category.page.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/category.page.ts rename to e2e/cypress/e2e/pages/shopping/category.page.ts diff --git a/e2e/cypress/integration/pages/shopping/compare.page.ts b/e2e/cypress/e2e/pages/shopping/compare.page.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/compare.page.ts rename to e2e/cypress/e2e/pages/shopping/compare.page.ts diff --git a/e2e/cypress/integration/pages/shopping/family.page.ts b/e2e/cypress/e2e/pages/shopping/family.page.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/family.page.ts rename to e2e/cypress/e2e/pages/shopping/family.page.ts diff --git a/e2e/cypress/integration/pages/shopping/filter-navigation.module.ts b/e2e/cypress/e2e/pages/shopping/filter-navigation.module.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/filter-navigation.module.ts rename to e2e/cypress/e2e/pages/shopping/filter-navigation.module.ts diff --git a/e2e/cypress/integration/pages/shopping/not-found.page.ts b/e2e/cypress/e2e/pages/shopping/not-found.page.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/not-found.page.ts rename to e2e/cypress/e2e/pages/shopping/not-found.page.ts diff --git a/e2e/cypress/integration/pages/shopping/product-detail.page.ts b/e2e/cypress/e2e/pages/shopping/product-detail.page.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/product-detail.page.ts rename to e2e/cypress/e2e/pages/shopping/product-detail.page.ts diff --git a/e2e/cypress/integration/pages/shopping/product-list.module.ts b/e2e/cypress/e2e/pages/shopping/product-list.module.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/product-list.module.ts rename to e2e/cypress/e2e/pages/shopping/product-list.module.ts diff --git a/e2e/cypress/integration/pages/shopping/product-review.module.ts b/e2e/cypress/e2e/pages/shopping/product-review.module.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/product-review.module.ts rename to e2e/cypress/e2e/pages/shopping/product-review.module.ts diff --git a/e2e/cypress/integration/pages/shopping/quote-request.dialog.ts b/e2e/cypress/e2e/pages/shopping/quote-request.dialog.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/quote-request.dialog.ts rename to e2e/cypress/e2e/pages/shopping/quote-request.dialog.ts diff --git a/e2e/cypress/integration/pages/shopping/recently-viewed.page.ts b/e2e/cypress/e2e/pages/shopping/recently-viewed.page.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/recently-viewed.page.ts rename to e2e/cypress/e2e/pages/shopping/recently-viewed.page.ts diff --git a/e2e/cypress/integration/pages/shopping/search-box.module.ts b/e2e/cypress/e2e/pages/shopping/search-box.module.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/search-box.module.ts rename to e2e/cypress/e2e/pages/shopping/search-box.module.ts diff --git a/e2e/cypress/integration/pages/shopping/search-result.page.ts b/e2e/cypress/e2e/pages/shopping/search-result.page.ts similarity index 100% rename from e2e/cypress/integration/pages/shopping/search-result.page.ts rename to e2e/cypress/e2e/pages/shopping/search-result.page.ts diff --git a/e2e/cypress/integration/specs/account/contact.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/account/contact.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/contact.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/contact.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/account/edit-user-company.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/account/edit-user-company.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/edit-user-company.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/edit-user-company.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/account/edit-user-details.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/account/edit-user-details.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/edit-user-details.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/edit-user-details.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/account/edit-user-email.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/account/edit-user-email.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/edit-user-email.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/edit-user-email.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/account/edit-user-password.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/account/edit-user-password.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/edit-user-password.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/edit-user-password.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/account/login-user.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/account/login-user.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/login-user.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/login-user.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/account/register-user.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/account/register-user.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/register-user.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/register-user.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/account/register-user.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/account/register-user.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/register-user.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/register-user.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/account/registration-form.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/account/registration-form.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/registration-form.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/registration-form.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/account/user-creation.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/account/user-creation.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/account/user-creation.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/account/user-creation.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/basket-handling.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/basket-handling.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/basket-handling.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/basket-handling.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/basket-promotion-handling.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/basket-promotion-handling.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/basket-promotion-handling.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/basket-promotion-handling.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/cart-variation-handling.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/cart-variation-handling.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/cart-variation-handling.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/cart-variation-handling.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/checkout-cost-center-multiple.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/checkout-cost-center-multiple.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/checkout-cost-center-multiple.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/checkout-cost-center-multiple.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/checkout-cost-center-no-costcenter.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/checkout-cost-center-no-costcenter.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/checkout-cost-center-no-costcenter.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/checkout-cost-center-no-costcenter.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/checkout-cost-center-order.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/checkout-cost-center-order.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/checkout-cost-center-order.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/checkout-cost-center-order.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/checkout-payments.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/checkout-payments.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/checkout-payments.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/checkout-payments.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/checkout-validation.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/checkout-validation.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/checkout-validation.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/checkout-validation.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/register-before-checkout.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/register-before-checkout.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/register-before-checkout.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/register-before-checkout.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/shopping-anonymous.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/shopping-anonymous.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/shopping-anonymous.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/shopping-anonymous.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/shopping-prices.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/shopping-prices.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/shopping-prices.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/shopping-prices.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/shopping-prices.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/shopping-prices.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/shopping-prices.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/shopping-prices.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/checkout/shopping-user.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/checkout/shopping-user.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/checkout/shopping-user.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/checkout/shopping-user.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/cms/server-html.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/cms/server-html.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/cms/server-html.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/cms/server-html.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/extras/compare-products.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/extras/compare-products.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/extras/compare-products.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/extras/compare-products.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/extras/order-templates-management.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/extras/order-templates-management.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/extras/order-templates-management.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/extras/order-templates-management.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/extras/order-templates-shopping.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/extras/order-templates-shopping.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/extras/order-templates-shopping.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/extras/order-templates-shopping.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/extras/punchout-management.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/extras/punchout-management.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/extras/punchout-management.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/extras/punchout-management.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/extras/wishlists-management.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/extras/wishlists-management.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/extras/wishlists-management.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/extras/wishlists-management.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/extras/wishlists-shopping.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/extras/wishlists-shopping.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/extras/wishlists-shopping.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/extras/wishlists-shopping.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/filter/filter-category.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/filter/filter-category.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/filter/filter-category.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/filter/filter-category.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/filter/filter-category.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/filter/filter-category.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/filter/filter-category.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/filter/filter-category.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/filter/filter-search-results.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/filter/filter-search-results.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/filter/filter-search-results.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/filter/filter-search-results.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/filter/filter-search-results.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/filter/filter-search-results.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/filter/filter-search-results.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/filter/filter-search-results.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/organizationmanagement/cost-center-management-crud.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/organizationmanagement/cost-center-management-crud.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/organizationmanagement/cost-center-management-crud.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/organizationmanagement/cost-center-management-crud.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/organizationmanagement/user-management-browsing.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/organizationmanagement/user-management-browsing.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/organizationmanagement/user-management-browsing.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/organizationmanagement/user-management-browsing.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/organizationmanagement/user-management-crud.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/organizationmanagement/user-management-crud.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/organizationmanagement/user-management-crud.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/organizationmanagement/user-management-crud.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/quickorder/quickorder-handling.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/quickorder/quickorder-handling.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/quickorder/quickorder-handling.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/quickorder/quickorder-handling.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/quoting/quote-handling-anonymous-basket-to-quote-request.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/quoting/quote-handling-anonymous-basket-to-quote-request.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/quoting/quote-handling-anonymous-basket-to-quote-request.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/quoting/quote-handling-anonymous-basket-to-quote-request.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/quoting/quote-handling-anonymous-product-to-quote-request.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/quoting/quote-handling-anonymous-product-to-quote-request.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/quoting/quote-handling-anonymous-product-to-quote-request.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/quoting/quote-handling-anonymous-product-to-quote-request.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/quoting/quote-handling.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/quoting/quote-handling.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/quoting/quote-handling.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/quoting/quote-handling.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/browse-products-from-indexed-page.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/browse-products-from-indexed-page.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/browse-products-from-indexed-page.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/browse-products-from-indexed-page.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/browse-products-homepage-to-product-detail.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/browse-products-homepage-to-product-detail.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/browse-products-homepage-to-product-detail.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/browse-products-homepage-to-product-detail.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/browse-products-recently-viewed.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/browse-products-recently-viewed.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/browse-products-recently-viewed.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/browse-products-recently-viewed.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/paging-product-list-family-page.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/paging-product-list-family-page.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/paging-product-list-family-page.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/paging-product-list-family-page.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/paging-product-list-search-page.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/paging-product-list-search-page.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/paging-product-list-search-page.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/paging-product-list-search-page.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/product-category-context-bundle-category.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/product-category-context-bundle-category.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/product-category-context-bundle-category.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/product-category-context-bundle-category.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/product-category-context-default-category.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/product-category-context-default-category.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/product-category-context-default-category.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/product-category-context-default-category.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/product-category-context-product-detail.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/product-category-context-product-detail.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/product-category-context-product-detail.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/product-category-context-product-detail.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/product-category-context-search.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/product-category-context-search.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/product-category-context-search.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/product-category-context-search.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/product-reviews.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/product-reviews.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/product-reviews.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/product-reviews.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/search-box.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/search-box.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/search-box.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/search-box.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/search-category-routing.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/search-category-routing.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/search-category-routing.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/search-category-routing.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/search-products.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/search-products.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/search-products.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/search-products.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/search-products.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/search-products.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/search-products.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/search-products.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/shopping-product-bundles.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/shopping-product-bundles.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/shopping-product-bundles.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/shopping-product-bundles.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/shopping-product-retailsets.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/shopping-product-retailsets.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/shopping-product-retailsets.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/shopping-product-retailsets.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/variation-handling.b2b.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/variation-handling.b2b.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/variation-handling.b2b.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/variation-handling.b2b.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/shopping/variation-handling.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/shopping/variation-handling.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/shopping/variation-handling.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/shopping/variation-handling.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/change-language-authentication.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/change-language-authentication.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/change-language-authentication.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/change-language-authentication.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/change-language-family-page.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/change-language-family-page.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/change-language-family-page.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/change-language-family-page.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/change-language-hompage.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/change-language-hompage.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/change-language-hompage.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/change-language-hompage.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/change-language-product-detail.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/change-language-product-detail.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/change-language-product-detail.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/change-language-product-detail.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/change-language-search-result.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/change-language-search-result.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/change-language-search-result.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/change-language-search-result.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/cookie-consent.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/cookie-consent.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/cookie-consent.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/cookie-consent.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/rest-error-handling.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/rest-error-handling.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/rest-error-handling.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/rest-error-handling.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/retain-authentication.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/retain-authentication.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/retain-authentication.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/retain-authentication.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/retain-basket-anonymous.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/retain-basket-anonymous.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/retain-basket-anonymous.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/retain-basket-anonymous.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/retain-basket-authenticated.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/retain-basket-authenticated.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/retain-basket-authenticated.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/retain-basket-authenticated.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/seo-home-page.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/seo-home-page.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/seo-home-page.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/seo-home-page.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/seo-product-detail-page.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/seo-product-detail-page.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/seo-product-detail-page.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/seo-product-detail-page.b2c.e2e-spec.ts diff --git a/e2e/cypress/integration/specs/system/seo-search-page.b2c.e2e-spec.ts b/e2e/cypress/e2e/specs/system/seo-search-page.b2c.e2e-spec.ts similarity index 100% rename from e2e/cypress/integration/specs/system/seo-search-page.b2c.e2e-spec.ts rename to e2e/cypress/e2e/specs/system/seo-search-page.b2c.e2e-spec.ts diff --git a/e2e/cypress/support/index.js b/e2e/cypress/support/e2e.js similarity index 100% rename from e2e/cypress/support/index.js rename to e2e/cypress/support/e2e.js diff --git a/e2e/cypress/tsconfig.json b/e2e/cypress/tsconfig.json index 8027a05113..f51939816d 100644 --- a/e2e/cypress/tsconfig.json +++ b/e2e/cypress/tsconfig.json @@ -1,11 +1,5 @@ { - "include": [ - "pages/**/*.ts", - "framework/*.ts", - "support/*.ts", - "integration/**/*.ts", - "../node_modules/cypress" - ], + "include": ["pages/**/*.ts", "framework/*.ts", "support/*.ts", "e2e/**/*.ts"], "exclude": ["node_modules"], "compilerOptions": { "outDir": "../node_modules/.out-tsc", diff --git a/e2e/open-cypress.js b/e2e/open-cypress.js index 1888c69370..a5e2110e68 100644 --- a/e2e/open-cypress.js +++ b/e2e/open-cypress.js @@ -1,4 +1,4 @@ -const cypress = require('cypress/lib/cli'); +const cypress = require('cypress'); const fs = require('fs'); let icmBaseUrl; @@ -20,10 +20,9 @@ if (!icmBaseUrl) { console.log('using', icmBaseUrl, 'as ICM_BASE_URL'); -const args = process.argv.slice(0, 2); -args.push('open', '-e', 'ICM_BASE_URL=' + icmBaseUrl); -if (process.argv.length > 2) { - args.push(...process.argv.slice(2)); -} - -cypress.init(args); +cypress.open({ + env: { + ICM_BASE_URL: icmBaseUrl, + }, + e2e: true, +}); diff --git a/e2e/package.json b/e2e/package.json index efe9a8df01..db82fba0e2 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -14,10 +14,15 @@ "author": "", "license": "MIT", "dependencies": { - "cypress": "^9.4.1", + "cypress": "^10.3.1", "cypress-failed-log": "^2.9.2", "cypress-log-to-output": "^1.1.2", "har-validator": "^5.1.5", + "lodash": "^4.17.21", "typescript": "^4.5.5" + }, + "devDependencies": { + "@types/lodash": "^4.14.182", + "@types/node": "^18.6.1" } } diff --git a/e2e/test-e2e.sh b/e2e/test-e2e.sh index a489205b24..de38c3b836 100644 --- a/e2e/test-e2e.sh +++ b/e2e/test-e2e.sh @@ -13,7 +13,7 @@ cd "$(dirname "$(readlink -f "$0")")" while true do - timeout 10m node cypress-ci-e2e "$files" + timeout 10m npx ts-node cypress-ci-e2e "$files" ret="$?" if [ "$ret" -eq "124" ] then diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json new file mode 100644 index 0000000000..674589c55a --- /dev/null +++ b/e2e/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "commonjs", + "moduleResolution": "node", + "target": "es6", + "types": ["node"] + }, + "files": ["cypress.config.ts", "cypress-ci-e2e.ts"] +}