From 6fc4959422f525247b93a3567bdc8e6c33e6de1f Mon Sep 17 00:00:00 2001 From: Silke Date: Mon, 25 Jul 2022 11:30:36 +0200 Subject: [PATCH 1/2] chore: cypress 10 upgrade --- .github/workflows/integration.yml | 2 +- docs/concepts/testing.md | 2 +- docs/guides/testing-cypress.md | 2 +- e2e/{cypress-ci-e2e.js => cypress-ci-e2e.ts} | 34 ++++++++++++------- e2e/cypress.config.ts | 22 ++++++++++++ e2e/cypress.json | 13 ------- e2e/cypress/.eslintrc.json | 6 ++-- .../framework/b2b-user.ts | 0 .../{integration => e2e}/framework/index.ts | 0 .../{integration => e2e}/framework/users.ts | 0 .../account/add-to-order-template.module.ts | 0 .../pages/account/add-to-wishlist.module.ts | 0 .../pages/account/login.page.ts | 0 .../pages/account/my-account.page.ts | 0 .../account/order-templates-details.page.ts | 0 .../account/order-templates-overview.page.ts | 0 .../pages/account/payment.page.ts | 0 .../account/profile-edit-company.page.ts | 0 .../account/profile-edit-details.page.ts | 0 .../pages/account/profile-edit-email.page.ts | 0 .../account/profile-edit-password.page.ts | 0 .../pages/account/profile.page.ts | 0 .../pages/account/punchout-create.page.ts | 0 .../pages/account/punchout-edit.page.ts | 0 .../pages/account/punchout-overview.page.ts | 0 .../pages/account/quote-detail.page.ts | 0 .../pages/account/quote-list.page.ts | 0 .../pages/account/registration.page.ts | 0 .../pages/account/wishlists-details.page.ts | 0 .../pages/account/wishlists-overview.page.ts | 0 .../pages/breadcrumb.module.ts | 0 .../pages/checkout/cart.page.ts | 0 .../pages/checkout/checkout-addresses.page.ts | 0 .../pages/checkout/checkout-payment.page.ts | 0 .../pages/checkout/checkout-receipt.page.ts | 0 .../pages/checkout/checkout-review.page.ts | 0 .../pages/checkout/checkout-shipping.page.ts | 0 .../pages/checkout/line-item-dialog.page.ts | 0 .../pages/checkout/mini-cart.module.ts | 0 .../contact/contact-confirmation.page.ts | 0 .../pages/contact/contact.page.ts | 0 .../pages/footer.module.ts | 0 .../pages/header.module.ts | 0 .../{integration => e2e}/pages/home.page.ts | 0 .../pages/meta-data.module.ts | 0 .../cost-center-buyers.page.ts | 0 .../cost-center-create.page.ts | 0 .../cost-center-detail.page.ts | 0 .../cost-center-edit.page.ts | 0 .../cost-centers.page.ts | 0 .../user-create.page.ts | 0 .../user-edit-budget.page.ts | 0 .../user-edit-roles.page.ts | 0 .../organizationmanagement/user-edit.page.ts | 0 .../users-detail.page.ts | 0 .../organizationmanagement/users.page.ts | 0 .../pages/quickorder/quickorder.page.ts | 0 .../pages/server-error.page.ts | 0 .../pages/shopping/category.page.ts | 0 .../pages/shopping/compare.page.ts | 0 .../pages/shopping/family.page.ts | 0 .../shopping/filter-navigation.module.ts | 0 .../pages/shopping/not-found.page.ts | 0 .../pages/shopping/product-detail.page.ts | 0 .../pages/shopping/product-list.module.ts | 0 .../pages/shopping/product-review.module.ts | 0 .../pages/shopping/quote-request.dialog.ts | 0 .../pages/shopping/recently-viewed.page.ts | 0 .../pages/shopping/search-box.module.ts | 0 .../pages/shopping/search-result.page.ts | 0 .../specs/account/contact.b2c.e2e-spec.ts | 0 .../account/edit-user-company.b2b.e2e-spec.ts | 0 .../account/edit-user-details.b2c.e2e-spec.ts | 0 .../account/edit-user-email.b2c.e2e-spec.ts | 0 .../edit-user-password.b2c.e2e-spec.ts | 0 .../specs/account/login-user.b2c.e2e-spec.ts | 0 .../account/register-user.b2b.e2e-spec.ts | 0 .../account/register-user.b2c.e2e-spec.ts | 0 .../account/registration-form.b2c.e2e-spec.ts | 0 .../account/user-creation.b2c.e2e-spec.ts | 0 .../checkout/basket-handling.b2c.e2e-spec.ts | 0 .../basket-promotion-handling.b2c.e2e-spec.ts | 0 .../cart-variation-handling.b2c.e2e-spec.ts | 0 ...ckout-cost-center-multiple.b2b.e2e-spec.ts | 0 ...-cost-center-no-costcenter.b2b.e2e-spec.ts | 0 ...checkout-cost-center-order.b2b.e2e-spec.ts | 0 .../checkout-payments.b2c.e2e-spec.ts | 0 .../checkout-validation.b2c.e2e-spec.ts | 0 .../register-before-checkout.b2c.e2e-spec.ts | 0 .../shopping-anonymous.b2c.e2e-spec.ts | 0 .../checkout/shopping-prices.b2b.e2e-spec.ts | 0 .../checkout/shopping-prices.b2c.e2e-spec.ts | 0 .../checkout/shopping-user.b2c.e2e-spec.ts | 0 .../specs/cms/server-html.b2c.e2e-spec.ts | 0 .../extras/compare-products.b2c.e2e-spec.ts | 0 ...order-templates-management.b2b.e2e-spec.ts | 0 .../order-templates-shopping.b2b.e2e-spec.ts | 0 .../punchout-management.b2b.e2e-spec.ts | 0 .../wishlists-management.b2c.e2e-spec.ts | 0 .../extras/wishlists-shopping.b2c.e2e-spec.ts | 0 .../filter/filter-category.b2b.e2e-spec.ts | 0 .../filter/filter-category.b2c.e2e-spec.ts | 0 .../filter-search-results.b2b.e2e-spec.ts | 0 .../filter-search-results.b2c.e2e-spec.ts | 0 ...ost-center-management-crud.b2b.e2e-spec.ts | 0 .../user-management-browsing.b2b.e2e-spec.ts | 0 .../user-management-crud.b2b.e2e-spec.ts | 0 .../quickorder-handling.b2b.e2e-spec.ts | 0 ...us-basket-to-quote-request.b2b.e2e-spec.ts | 0 ...s-product-to-quote-request.b2b.e2e-spec.ts | 0 .../quoting/quote-handling.b2b.e2e-spec.ts | 0 ...products-from-indexed-page.b2c.e2e-spec.ts | 0 ...homepage-to-product-detail.b2c.e2e-spec.ts | 0 ...e-products-recently-viewed.b2c.e2e-spec.ts | 0 ...g-product-list-family-page.b2c.e2e-spec.ts | 0 ...g-product-list-search-page.b2c.e2e-spec.ts | 0 ...ry-context-bundle-category.b2c.e2e-spec.ts | 0 ...y-context-default-category.b2c.e2e-spec.ts | 0 ...ory-context-product-detail.b2c.e2e-spec.ts | 0 ...ct-category-context-search.b2c.e2e-spec.ts | 0 .../shopping/product-reviews.b2b.e2e-spec.ts | 0 .../specs/shopping/search-box.b2c.e2e-spec.ts | 0 .../search-category-routing.b2c.e2e-spec.ts | 0 .../shopping/search-products.b2b.e2e-spec.ts | 0 .../shopping/search-products.b2c.e2e-spec.ts | 0 .../shopping-product-bundles.b2c.e2e-spec.ts | 0 ...hopping-product-retailsets.b2c.e2e-spec.ts | 0 .../variation-handling.b2b.e2e-spec.ts | 0 .../variation-handling.b2c.e2e-spec.ts | 0 ...ge-language-authentication.b2c.e2e-spec.ts | 0 ...hange-language-family-page.b2c.e2e-spec.ts | 0 .../change-language-hompage.b2c.e2e-spec.ts | 0 ...ge-language-product-detail.b2c.e2e-spec.ts | 0 ...nge-language-search-result.b2c.e2e-spec.ts | 0 .../system/cookie-consent.b2c.e2e-spec.ts | 0 .../rest-error-handling.b2c.e2e-spec.ts | 0 .../retain-authentication.b2c.e2e-spec.ts | 0 .../retain-basket-anonymous.b2c.e2e-spec.ts | 0 ...etain-basket-authenticated.b2c.e2e-spec.ts | 0 .../system/seo-home-page.b2c.e2e-spec.ts | 0 .../seo-product-detail-page.b2c.e2e-spec.ts | 0 .../system/seo-search-page.b2c.e2e-spec.ts | 0 e2e/cypress/support/{index.js => e2e.js} | 0 e2e/cypress/tsconfig.json | 8 +---- e2e/open-cypress.js | 15 ++++---- e2e/package.json | 7 +++- e2e/test-e2e.sh | 2 +- e2e/tsconfig.json | 9 +++++ 148 files changed, 74 insertions(+), 48 deletions(-) rename e2e/{cypress-ci-e2e.js => cypress-ci-e2e.ts} (78%) create mode 100644 e2e/cypress.config.ts delete mode 100644 e2e/cypress.json rename e2e/cypress/{integration => e2e}/framework/b2b-user.ts (100%) rename e2e/cypress/{integration => e2e}/framework/index.ts (100%) rename e2e/cypress/{integration => e2e}/framework/users.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/add-to-order-template.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/add-to-wishlist.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/login.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/my-account.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/order-templates-details.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/order-templates-overview.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/payment.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/profile-edit-company.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/profile-edit-details.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/profile-edit-email.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/profile-edit-password.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/profile.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/punchout-create.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/punchout-edit.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/punchout-overview.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/quote-detail.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/quote-list.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/registration.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/wishlists-details.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/account/wishlists-overview.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/breadcrumb.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/checkout/cart.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/checkout/checkout-addresses.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/checkout/checkout-payment.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/checkout/checkout-receipt.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/checkout/checkout-review.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/checkout/checkout-shipping.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/checkout/line-item-dialog.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/checkout/mini-cart.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/contact/contact-confirmation.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/contact/contact.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/footer.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/header.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/home.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/meta-data.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/cost-center-buyers.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/cost-center-create.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/cost-center-detail.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/cost-center-edit.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/cost-centers.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/user-create.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/user-edit-budget.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/user-edit-roles.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/user-edit.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/users-detail.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/organizationmanagement/users.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/quickorder/quickorder.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/server-error.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/category.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/compare.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/family.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/filter-navigation.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/not-found.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/product-detail.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/product-list.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/product-review.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/quote-request.dialog.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/recently-viewed.page.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/search-box.module.ts (100%) rename e2e/cypress/{integration => e2e}/pages/shopping/search-result.page.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/contact.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/edit-user-company.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/edit-user-details.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/edit-user-email.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/edit-user-password.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/login-user.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/register-user.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/register-user.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/registration-form.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/account/user-creation.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/basket-handling.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/basket-promotion-handling.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/cart-variation-handling.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/checkout-cost-center-multiple.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/checkout-cost-center-no-costcenter.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/checkout-cost-center-order.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/checkout-payments.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/checkout-validation.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/register-before-checkout.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/shopping-anonymous.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/shopping-prices.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/shopping-prices.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/checkout/shopping-user.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/cms/server-html.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/extras/compare-products.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/extras/order-templates-management.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/extras/order-templates-shopping.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/extras/punchout-management.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/extras/wishlists-management.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/extras/wishlists-shopping.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/filter/filter-category.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/filter/filter-category.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/filter/filter-search-results.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/filter/filter-search-results.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/organizationmanagement/cost-center-management-crud.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/organizationmanagement/user-management-browsing.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/organizationmanagement/user-management-crud.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/quickorder/quickorder-handling.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/quoting/quote-handling-anonymous-basket-to-quote-request.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/quoting/quote-handling-anonymous-product-to-quote-request.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/quoting/quote-handling.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/browse-products-from-indexed-page.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/browse-products-homepage-to-product-detail.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/browse-products-recently-viewed.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/paging-product-list-family-page.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/paging-product-list-search-page.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/product-category-context-bundle-category.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/product-category-context-default-category.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/product-category-context-product-detail.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/product-category-context-search.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/product-reviews.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/search-box.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/search-category-routing.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/search-products.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/search-products.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/shopping-product-bundles.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/shopping-product-retailsets.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/variation-handling.b2b.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/shopping/variation-handling.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/change-language-authentication.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/change-language-family-page.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/change-language-hompage.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/change-language-product-detail.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/change-language-search-result.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/cookie-consent.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/rest-error-handling.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/retain-authentication.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/retain-basket-anonymous.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/retain-basket-authenticated.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/seo-home-page.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/seo-product-detail-page.b2c.e2e-spec.ts (100%) rename e2e/cypress/{integration => e2e}/specs/system/seo-search-page.b2c.e2e-spec.ts (100%) rename e2e/cypress/support/{index.js => e2e.js} (100%) create mode 100644 e2e/tsconfig.json 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/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 78% rename from e2e/cypress-ci-e2e.js rename to e2e/cypress-ci-e2e.ts index 6bb7d6c754..36a84c9e37 100644 --- a/e2e/cypress-ci-e2e.js +++ b/e2e/cypress-ci-e2e.ts @@ -1,15 +1,19 @@ +/* eslint-disable */ /* * 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,18 @@ const checkMaxRunsReached = (num, noOfSpecs) => { } }; -const newGroupName = num => { +const newGroupName = (num: unknown) => { // 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 => { num += 1; let config = _.cloneDeep(DEFAULT_CONFIG); config = { ...config, env: { ...config.env, numRuns: num } }; @@ -70,7 +80,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 +93,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..d846166fb7 --- /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: unknown, config: unknown) { + /* 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..b6f8483154 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", + "@types/node": "^18.6.1", "typescript": "^4.5.5" + }, + "devDependencies": { + "@types/lodash": "^4.14.182" } } 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"] +} From 534c2f5bb77d511169b7839e6601c73bd478dae1 Mon Sep 17 00:00:00 2001 From: Silke Date: Tue, 26 Jul 2022 15:19:35 +0200 Subject: [PATCH 2/2] chore: add migration note, smaller enhancements --- docs/guides/migrations.md | 4 ++++ e2e/cypress-ci-e2e.ts | 7 ++++--- e2e/cypress.config.ts | 2 +- e2e/package.json | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) 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/e2e/cypress-ci-e2e.ts b/e2e/cypress-ci-e2e.ts index 36a84c9e37..15b1e8491a 100644 --- a/e2e/cypress-ci-e2e.ts +++ b/e2e/cypress-ci-e2e.ts @@ -1,4 +1,4 @@ -/* eslint-disable */ +/* eslint-disable no-console */ /* * adapted from https://gist.github.com/Bkucera/4ffd05f67034176a00518df251e19f58 * @@ -53,7 +53,7 @@ const checkMaxRunsReached = (num: number, noOfSpecs: number) => { } }; -const newGroupName = (num: unknown) => { +const newGroupName = (num: number) => { // If we're using parallelization, set a new group name if (DEFAULT_CONFIG.group) { return `${DEFAULT_CONFIG.group}: retry #${num}`; @@ -65,6 +65,7 @@ const run = ( 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 } }; @@ -80,7 +81,7 @@ const run = ( return cypress .run(config) .then(results => { - if (results.status == 'failed') { + if (results.status === 'failed') { throw new Error(results.message); } else if (results.totalFailed) { // rerun again with only the failed tests diff --git a/e2e/cypress.config.ts b/e2e/cypress.config.ts index d846166fb7..b29683630b 100644 --- a/e2e/cypress.config.ts +++ b/e2e/cypress.config.ts @@ -12,7 +12,7 @@ export default defineConfig({ e2e: { // We've imported your old cypress plugins here. // You may want to clean this up later by importing these. - setupNodeEvents(on: unknown, config: unknown) { + setupNodeEvents(on: Cypress.PluginEvents, config: Cypress.PluginConfigOptions) { /* eslint-disable-next-line @typescript-eslint/no-var-requires */ return require('./cypress/plugins/index.js')(on, config); }, diff --git a/e2e/package.json b/e2e/package.json index b6f8483154..db82fba0e2 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -19,10 +19,10 @@ "cypress-log-to-output": "^1.1.2", "har-validator": "^5.1.5", "lodash": "^4.17.21", - "@types/node": "^18.6.1", "typescript": "^4.5.5" }, "devDependencies": { - "@types/lodash": "^4.14.182" + "@types/lodash": "^4.14.182", + "@types/node": "^18.6.1" } }