woocommerce/plugins/woocommerce-blocks/tests/e2e
Manish Menaria 4ca6696f12
Product Collection: Add "order" reference to Upsells and Cross-sells (#52258)
* Add order reference to Upsells and Cross-sells

- Added 'order' to usesReference in cross-sells and upsells
- Updated LinkedProductControl for order context
- Enhanced ProductCollection to handle order references

* Add changefile(s) from automation for the following project(s): woocommerce-blocks, woocommerce

* Add PHP code for Cross-sells collection

* Fix formatting

* Add E2E tests

1. In the Cart Template, it checks that "From products in the cart" is
   selected by default for the "My Custom Collection - Cart Context".

2. In the Order Confirmation Template, it verifies that "From products
   in the order" is chosen by default for the "My Custom Collection -
   Order Context".

* Add 'block' scope to cross-sells collection

* Extract and use reference type constants

This commit extracts the REFERENCE_TYPE_CART and REFERENCE_TYPE_ORDER
constants to the top of the file and updates their usage throughout
the code, including in the getFromCurrentProductRadioLabel function.

* Align variable naming for product references in Product Collection

This commit updates the ProductCollection class to ensure consistency in
variable naming for product references across different collection types,
particularly aligning with the naming convention used in Upsells.

* Add "hadOrderReference" to conditional label display

Key changes:
- Removed `isUsesReferenceIncludesCart` parameter from `getFromCurrentProductRadioLabel`
- Introduced `hasCartReference` and `hasOrderReference` parameters for consistency
- Updated conditional logic to check for both cart and order references
- Adjusted the function call in `LinkedProductControl` to pass both new parameters

* Fallback to 0 for orderId in get_product_ids_from_order calls

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-10-25 14:56:39 +05:30
..
bin Blocks E2E: Fix DB snapshot removal step in setup script (#49677) 2024-07-19 12:02:56 +02:00
content-templates [Experimental] Product Filters Redesign > Status filter block: Rename Stock Status Filter to Status Filter (#52076) 2024-10-24 14:16:54 -03:00
plugins Product Collection: Support registering product collection that isn't displayed in Collection Chooser (#52057) 2024-10-22 14:02:32 +05:30
rules Blocks E2E: Streamline E2E utils implementation (#47660) 2024-05-27 14:54:06 +00:00
test-data/data Refactor review blocks e2e tests to remove redundant html templates and add more scenarios (#44880) 2024-02-29 15:43:59 +13:00
tests Product Collection: Add "order" reference to Upsells and Cross-sells (#52258) 2024-10-25 14:56:39 +05:30
themes Delayed Account Creation Test Coverage (#51852) 2024-10-07 11:12:37 +01:00
utils Blocks E2E: Fix db connection issues (#51658) 2024-09-30 09:54:46 +02:00
.eslintrc.js Blocks E2E: Restore the no-hooks rule (#47500) 2024-05-15 13:05:52 +02:00
README.md Settings Save button disable/enable (#47444) 2024-06-25 13:12:14 +12:00
flaky-tests-reporter.ts Fix most of lint warnings (#50869) 2024-08-23 14:30:14 +02:00
global-setup.ts Blocks E2E: Streamline the usage of WP CLI (#47869) 2024-05-28 17:09:28 +02:00
playwright.config.ts [e2e tests] Add BuildKite reporter to Blocks e2e tests (#50642) 2024-08-15 13:48:44 +01:00
playwright.performance.config.ts Blocks: Isolate performance tests from e2e tests (#46773) 2024-04-23 13:11:46 +02:00
tsconfig.json Blocks E2E: Align ESLint and TS configs with Gutenberg (#47228) 2024-05-14 10:23:17 +02:00

README.md

WooCommerce Blocks End-to-End Tests

This document provides an overview of the WooCommerce Blocks end-to-end testing process. For detailed instructions and comprehensive guidelines, please refer to the contributor guidelines document.

Quick Start

Preparing the Environment

  1. Build the WooCommerce Plugin:

    pnpm --filter='@woocommerce/plugin-woocommerce' watch:build
    
  2. Go to the WooCommerce Blocks plugin folder:

    cd plugins/woocommerce-blocks/
    
  3. Start the environment:

    pnpm env:start
    

Running the Tests

  1. Run all tests:

    pnpm test:e2e
    
  2. Run a single test file:

    pnpm test:e2e path/to/the/file.spec.ts
    
  3. Run in UI mode:

    pnpm test:e2e --ui
    
  4. Run in debug mode:

pnpm test:e2e --debug