Project Structure - spryker-projects/cypress-boilerplate GitHub Wiki
cypress-boilerplate/
├── .envs
│ ├── .env.ci
│ ├── .env.local
│ ├── .env.production
│ ├── .env.staging
│ └── .env.testing
├── .github
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows
│ ├── ci.yml
│ └── regression.yml
├── cypress
│ ├── data
│ │ ├── reports
│ │ │ └── index.html
│ │ └── screenshots
│ ├── e2e
│ │ ├── backoffice
│ │ │ └── orders
│ │ │ ├── backoffice-process-order-scenario.cy.ts
│ │ │ └── backoffice-process-order.cy.ts
│ │ ├── glue
│ │ │ ├── access-tokens
│ │ │ │ └── glue-access-token.cy.ts
│ │ │ └── checkout
│ │ │ └── glue-checkout.cy.ts
│ │ ├── merchant-portal
│ │ │ └── orders
│ │ │ └── merchant-portal-process-merchant-order.cy.ts
│ │ └── storefront
│ │ ├── checkout
│ │ │ └── storefront-checkout.cy.ts
│ │ └── quick-order
│ │ └── storefront-quick-order.cy.ts
│ ├── fixtures
│ │ ├── checkout-data.json
│ │ ├── customer-data.json
│ │ ├── product-data.json
│ │ ├── quick-order-data.json
│ │ └── user-data.json
│ └── support
│ ├── api-helper
│ │ ├── api-helper.ts
│ │ └── general-responses
│ │ └── error-response.ts
│ ├── cy-commands
│ │ ├── backoffice
│ │ │ └── oms-transition-commands.ts
│ │ ├── glue
│ │ │ ├── addresses-commands.ts
│ │ │ ├── carts-commands.ts
│ │ │ └── checkout-commands.ts
│ │ └── storefront
│ │ ├── cart-commands.ts
│ │ └── utility-commands.ts
│ ├── e2e.ts
│ ├── glue-endpoints
│ │ ├── authentication
│ │ │ ├── access-tokens-response.ts
│ │ │ └── access-tokens.ts
│ │ ├── cart
│ │ │ ├── carts-items.ts
│ │ │ └── carts.ts
│ │ ├── checkout
│ │ │ └── checkout.ts
│ │ └── glue-request.ts
│ ├── index.d.ts
│ ├── page-objects
│ │ ├── abstract-page.ts
│ │ ├── backoffice
│ │ │ ├── login
│ │ │ │ └── backoffice-login-page.ts
│ │ │ └── order-management
│ │ │ ├── backoffice-order-details-page.ts
│ │ │ └── backoffice-order-list-page.ts
│ │ ├── merchant-portal
│ │ │ ├── login
│ │ │ │ └── merchant-portal-login-page.ts
│ │ │ └── order-management
│ │ │ ├── merchant-portal-order-details-page.ts
│ │ │ └── merchant-portal-order-list-page.ts
│ │ └── storefront
│ │ ├── cart
│ │ │ ├── storefront-cart-flyout.ts
│ │ │ ├── storefront-cart-page.ts
│ │ │ └── storefront-create-cart-page.ts
│ │ ├── checkout
│ │ │ ├── storefront-checkout-address-page.ts
│ │ │ ├── storefront-checkout-payment-page.ts
│ │ │ ├── storefront-checkout-shipping-page.ts
│ │ │ ├── storefront-checkout-success-page.ts
│ │ │ └── storefront-checkout-summary-page.ts
│ │ ├── login
│ │ │ └── storefront-login-page.ts
│ │ ├── product
│ │ │ └── storefront-product-details-page.ts
│ │ ├── quick-order
│ │ │ └── storefront-quick-order-page.ts
│ │ └── search
│ │ ├── storefront-search-page.ts
│ │ ├── storefront-search-results-page.ts
│ │ └── storefront-search-suggestions-flyout.ts
│ └── scenarios
│ ├── backoffice
│ │ └── oms-transition-scenarios.ts
│ ├── glue
│ │ ├── glue-addresses-scenarios.ts
│ │ ├── glue-carts-scenarios.ts
│ │ └── glue-checkout-scenarios.ts
│ └── storefront
│ ├── storefront-cart-scenarios.ts
│ └── storefront-quick-order-scenarios.ts
├── .env.dist
├── .eslintignore
├── .eslintrc
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── composer.json
├── cypress.config.ts
├── Dockerfile
├── LICENSE
├── package-lock.json
├── package.json
├── README.md
└── tsconfig.json
Directory and File Descriptions
Root Directory
Contains the main configuration files and project information.
- .env.dist: Example environment variables file.
- .eslintignore: ESLint ignore file.
- .eslintrc: ESLint configuration file.
- .gitignore: Git ignore file.
- .prettierignore: Prettier ignore file.
- .prettierrc.json: Prettier configuration file.
- composer.json: Dependencies for PHP components.
- cypress.config.ts: Cypress configuration file.
- Dockerfile: Configuration file for building Docker images.
- LICENSE: License information.
- README.md: Project overview and instructions.
- package.json: Project dependencies and scripts.
- package-lock.json: Lock file for npm dependencies.
- tsconfig.json: TypeScript configuration file.
.envs Directory
Contains environment variables for different environments.
- .env.ci: CI environment variables.
- .env.local: Local environment variables.
- .env.production: Production environment variables.
- .env.staging: Staging environment variables.
- .env.testing: Testing environment variables.
.github Directory
Contains GitHub-specific files and workflows.
- PULL_REQUEST_TEMPLATE.md: Pull request template.
- workflows: GitHub Actions workflows.
- ci.yml: Continuous integration workflow. Checks Code Quality.
- regression.yml: Regression testing workflow. Runs E2E tests vs Spryker B2B Demoshop
cypress Directory
Contains Cypress-specific files and directories.
- e2e: End-to-end test files.
- backoffice: Test files for back office processes.
- backoffice-process-order-scenario.cy.ts: Scenario-based test for back office order processing with an example of CLI scenarios.
- backoffice-process-order.cy.ts: Test for back office order processing with an example of CLI commands.
- glue: Test files for glue components.
- glue-access-token.cy.ts: Test for access tokens with API response validation vs schema.
- glue-checkout.cy.ts: Test for checkout process.
- merchant-portal: Test files for merchant portal.
- merchant-portal-process-merchant-order.cy.ts: Test for merchant order processing within Merchant Portal with an example of order item state handling.
- storefront: Test files for storefront.
- storefront-checkout.cy.ts: Test for storefront checkout process.
- backoffice: Test files for back office processes.
fixtures Directory
Contains test data files.
- checkout-data.json: Test data for checkout.
- customer-data.json: Test data for customers.
- product-data.json: Test data for products.
- user-data.json: Test data for back office users.
support Directory
Contains support files for Cypress tests.
- api-helper: Helper files for API interactions.
- api-helper.ts: API response schema validator, based on Ajv validator
- general-responses: Common API responses.
- error-response.ts: Glue rrror response schema.
- cy-commands: Custom Cypress commands.
- backoffice: Custom commands for back office.
- oms-transition-commands.ts: OMS transition commands.
- glue: Custom commands for glue components.
- addresses-commands.ts: Addresses commands.
- carts-commands.ts: Carts commands.
- checkout-commands.ts: Checkout commands.
- storefront: Custom commands for storefront.
- cart-commands.ts: Cart commands.
- utility-commands.ts: Utility commands.
- backoffice: Custom commands for back office.
- e2e.ts: End-to-end test setup.
- glue-endpoints: Endpoints for glue components.
- authentication: Authentication endpoints.
- access-tokens-response.ts: Access tokens response schema.
- access-tokens.ts: Access tokens requests.
- cart: Cart endpoints.
- carts-items.ts: Carts items endpoint requests.
- carts.ts: Carts endpoint requests.
- checkout: Checkout endpoints.
- checkout.ts: Checkout endpoint requests.
- glue-request.ts: Abstract class/page object model for Glue endpoint/classes.
- authentication: Authentication endpoints.
- index.d.ts: TypeScript declaration files.
- page-objects: Page object models for application sections.
- abstract-page.ts: Abstract class/page object model for UI pages/classes.
- backoffice: Page objects for back office.
- login: Login page objects.
- backoffice-login-page.ts: Back office login page object.
- order-management: Order management page objects.
- backoffice-order-details-page.ts: Back office order details page object.
- backoffice-order-list-page.ts: Back office order list page object.
- login: Login page objects.
- merchant-portal: Page objects for merchant portal.
- login: Login page objects.
- merchant-portal-login-page.ts: Merchant portal login page object.
- order-management: Order management page objects.
- merchant-portal-order-details-page.ts: Merchant portal order details page object.
- merchant-portal-order-list-page.ts: Merchant portal order list page object.
- login: Login page objects.
- storefront: Page objects for storefront.
- cart: Cart page objects.
- storefront-cart-flyout.ts: Storefront cart flyout page object.
- storefront-cart-page.ts: Storefront cart page object.
- storefront-create-cart-page.ts: Storefront create cart page object.
- checkout: Checkout page objects.
- storefront-checkout-address-page.ts: Storefront checkout address page object.
- storefront-checkout-payment-page.ts: Storefront checkout payment page object.
- storefront-checkout-shipping-page.ts: Storefront checkout shipping page object.
- storefront-checkout-success-page.ts: Storefront checkout success page object.
- storefront-checkout-summary-page.ts: Storefront checkout summary page object.
- login: Login page objects.
- storefront-login-page.ts: Storefront login page object.
- product: Product page objects.
- storefront-product-details-page.ts: Storefront product details page object.
- search: Search page objects.
- storefront-search-page.ts: Storefront search page object.
- storefront-search-results-page.ts: Storefront search results page object.
- storefront-search-suggestions-flyout.ts: Storefront search suggestions flyout page object.
- cart: Cart page objects.
- scenarios: Scenario files for various components.
- backoffice: Back office scenarios.
- oms-transition-scenarios.ts: OMS transition scenarios.
- glue: Glue scenarios.
- glue-addresses-scenarios.ts: Glue addresses scenarios.
- glue-carts-scenarios.ts: Glue carts scenarios.
- glue-checkout-scenarios.ts: Glue checkout scenarios.
- storefront: Storefront scenarios.
- storefront-cart-scenarios.ts: Storefront cart scenarios.
- backoffice: Back office scenarios.