Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Migrate Classic Block E2E tests to Playwright #9575

Conversation

gigitux
Copy link
Contributor

@gigitux gigitux commented May 24, 2023

⚠️ This PR adds E2E tests for #9551

This PR adds a new Playwright project to run E2E tests with global side effects. Due to the nature of these tests and their potential impact, they are not executed in parallel with other tests (see #9632).

Also, it adds Playwright tests to be sure that the Classic Template Block is rendered by default when wc_blocks_use_blockified_product_grid_block_as_template option is set to false.

It removes some tests from Puppeteer. They tested some Site Editor functionalities, but E2E tests about the classic block should not test Gutenberg logic.

  1. Be sure that E2E tests pass.

@gigitux gigitux changed the title Migrate E2E tests to Playwright Migrate Classic Block E2E tests to Playwright May 24, 2023
@github-actions
Copy link
Contributor

github-actions bot commented May 24, 2023

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-9575.zip

Script Dependencies Report

The compare-assets action has detected some changed script dependencies between this branch and trunk. Please review and confirm the following are correct before merging.

Script Handle Added Removed
product-categories.js wp-data 🎉

This comment was automatically generated by the ./github/compare-assets action.

TypeScript Errors Report

  • Files with errors: 468
  • Total errors: 2254

⚠️ ⚠️ This PR introduces new TS errors on 2 files:

assets/js/base/components/state-input/billing-state-input.tsx

assets/js/base/utils/address.ts

comments-aggregator

@gigitux gigitux mentioned this pull request May 24, 2023
4 tasks
@github-actions
Copy link
Contributor

github-actions bot commented May 24, 2023

Size Change: 0 B

Total Size: 1.09 MB

ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 8.57 kB
build/active-filters-wrapper-frontend.js 7.6 kB
build/active-filters.js 7.47 kB
build/all-products-frontend.js 11.9 kB
build/all-products.js 39.9 kB
build/all-reviews.js 7.77 kB
build/attribute-filter-wrapper--stock-filter-wrapper-frontend.js 4.04 kB
build/attribute-filter-wrapper-frontend.js 4.29 kB
build/attribute-filter.js 13.1 kB
build/blocks-checkout.js 35.2 kB
build/breadcrumbs.js 2.05 kB
build/cart-blocks/cart-accepted-payment-methods-frontend.js 1.39 kB
build/cart-blocks/cart-cross-sells-frontend.js 253 B
build/cart-blocks/cart-cross-sells-products--product-price-frontend.js 2.92 kB
build/cart-blocks/cart-cross-sells-products-frontend.js 3.71 kB
build/cart-blocks/cart-express-payment--checkout-blocks/express-payment-frontend.js 5.17 kB
build/cart-blocks/cart-express-payment-frontend.js 720 B
build/cart-blocks/cart-items-frontend.js 301 B
build/cart-blocks/cart-line-items--mini-cart-contents-block/products-table-frontend.js 5.5 kB
build/cart-blocks/cart-line-items-frontend.js 1.06 kB
build/cart-blocks/cart-order-summary-frontend.js 1.27 kB
build/cart-blocks/cart-totals-frontend.js 308 B
build/cart-blocks/empty-cart-frontend.js 346 B
build/cart-blocks/filled-cart-frontend.js 656 B
build/cart-blocks/order-summary-coupon-form-frontend.js 1.63 kB
build/cart-blocks/order-summary-discount-frontend.js 2.12 kB
build/cart-blocks/order-summary-fee-frontend.js 272 B
build/cart-blocks/order-summary-heading-frontend.js 333 B
build/cart-blocks/order-summary-shipping-frontend.js 17.1 kB
build/cart-blocks/order-summary-subtotal-frontend.js 273 B
build/cart-blocks/order-summary-taxes-frontend.js 434 B
build/cart-blocks/proceed-to-checkout-frontend.js 1.38 kB
build/cart-frontend.js 29.8 kB
build/cart.js 45 kB
build/catalog-sorting.js 1.7 kB
build/checkout-blocks/actions-frontend.js 1.85 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.7 kB
build/checkout-blocks/billing-address-frontend.js 1.18 kB
build/checkout-blocks/contact-information-frontend.js 2.04 kB
build/checkout-blocks/express-payment-frontend.js 1.14 kB
build/checkout-blocks/fields-frontend.js 332 B
build/checkout-blocks/order-note-frontend.js 1.14 kB
build/checkout-blocks/order-summary-cart-items-frontend.js 3.69 kB
build/checkout-blocks/order-summary-coupon-form-frontend.js 1.79 kB
build/checkout-blocks/order-summary-discount-frontend.js 2.29 kB
build/checkout-blocks/order-summary-fee-frontend.js 275 B
build/checkout-blocks/order-summary-frontend.js 1.28 kB
build/checkout-blocks/order-summary-shipping-frontend.js 17 kB
build/checkout-blocks/order-summary-subtotal-frontend.js 273 B
build/checkout-blocks/order-summary-taxes-frontend.js 434 B
build/checkout-blocks/payment-frontend.js 8.29 kB
build/checkout-blocks/pickup-options-frontend.js 4.84 kB
build/checkout-blocks/shipping-address-frontend.js 1.17 kB
build/checkout-blocks/shipping-method-frontend.js 2.63 kB
build/checkout-blocks/shipping-methods-frontend.js 6.4 kB
build/checkout-blocks/terms-frontend.js 1.56 kB
build/checkout-blocks/totals-frontend.js 361 B
build/checkout-frontend.js 31.9 kB
build/checkout.js 46.4 kB
build/customer-account.js 3.18 kB
build/featured-category.js 15 kB
build/featured-product.js 15.2 kB
build/filter-wrapper-frontend.js 14.2 kB
build/filter-wrapper.js 2.4 kB
build/general-style-rtl.css 1.31 kB
build/general-style.css 1.31 kB
build/handpicked-products.js 7.96 kB
build/legacy-template.js 6.38 kB
build/mini-cart-component-frontend.js 28.5 kB
build/mini-cart-contents-block/cart-button-frontend.js 1.73 kB
build/mini-cart-contents-block/checkout-button-frontend.js 1.73 kB
build/mini-cart-contents-block/empty-cart-frontend.js 360 B
build/mini-cart-contents-block/filled-cart-frontend.js 267 B
build/mini-cart-contents-block/footer-frontend.js 4.09 kB
build/mini-cart-contents-block/items-frontend.js 237 B
build/mini-cart-contents-block/products-table-frontend.js 594 B
build/mini-cart-contents-block/shopping-button-frontend.js 528 B
build/mini-cart-contents-block/title-frontend.js 1.9 kB
build/mini-cart-contents-block/title-items-counter-frontend.js 1.59 kB
build/mini-cart-contents-block/title-label-frontend.js 1.53 kB
build/mini-cart-contents.js 18 kB
build/mini-cart-frontend.js 2.67 kB
build/mini-cart.js 4.35 kB
build/price-filter-wrapper-frontend.js 6.74 kB
build/price-filter.js 8.47 kB
build/price-format.js 1.19 kB
build/product-add-to-cart--product-button--product-image--product-price--product-rating--product-sale-bad--49d3ecb2.js 250 B
build/product-add-to-cart--product-button--product-image--product-rating--product-title.js 151 B
build/product-add-to-cart-frontend.js 6.51 kB
build/product-add-to-cart.js 8.88 kB
build/product-best-sellers.js 8.28 kB
build/product-button--product-image--product-price--product-rating--product-sale-badge--product-sku--prod--5bce0384.js 954 B
build/product-button-frontend.js 2.65 kB
build/product-button.js 4.01 kB
build/product-categories.js 2.37 kB
build/product-category.js 9.29 kB
build/product-collection.js 9.82 kB
build/product-image-frontend.js 2.61 kB
build/product-image.js 4.17 kB
build/product-new.js 8.58 kB
build/product-on-sale.js 8.61 kB
build/product-price-frontend.js 203 B
build/product-price.js 1.68 kB
build/product-query.js 11.7 kB
build/product-rating-frontend.js 2.27 kB
build/product-rating.js 971 B
build/product-results-count.js 1.66 kB
build/product-sale-badge-frontend.js 1.79 kB
build/product-sale-badge.js 665 B
build/product-search.js 2.63 kB
build/product-sku-frontend.js 1.84 kB
build/product-sku.js 536 B
build/product-stock-indicator-frontend.js 2.02 kB
build/product-stock-indicator.js 730 B
build/product-summary-frontend.js 2.18 kB
build/product-summary.js 904 B
build/product-tag.js 8.94 kB
build/product-template.js 3.26 kB
build/product-title-frontend.js 2.21 kB
build/product-title.js 3.69 kB
build/product-top-rated.js 8.84 kB
build/products-by-attribute.js 9.67 kB
build/rating-filter-frontend.js 21.4 kB
build/rating-filter-wrapper-frontend.js 6.2 kB
build/rating-filter.js 6.89 kB
build/reviews-by-category.js 12 kB
build/reviews-by-product.js 13.2 kB
build/reviews-frontend.js 7.11 kB
build/single-product.js 11.1 kB
build/stock-filter-wrapper-frontend.js 2.98 kB
build/stock-filter.js 7.61 kB
build/store-notices.js 1.69 kB
build/vendors--attribute-filter-wrapper--cart-blocks/order-summary-coupon-form--cart-blocks/order-summary--48e1e4bb-frontend.js 6.82 kB
build/vendors--attribute-filter-wrapper--cart-blocks/order-summary-shipping--checkout-blocks/billing-addr--d9f38f9d-frontend.js 4.21 kB
build/vendors--attribute-filter-wrapper--stock-filter-wrapper-frontend.js 5.11 kB
build/vendors--cart-blocks/cart-cross-sells-products--cart-blocks/cart-line-items--cart-blocks/cart-order--3c5fe802-frontend.js 5.26 kB
build/vendors--cart-blocks/cart-line-items--checkout-blocks/order-summary-cart-items--mini-cart-contents---233ab542-frontend.js 3.57 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--decc3dc6-frontend.js 19.4 kB
build/vendors--checkout-blocks/pickup-options--checkout-blocks/shipping-methods-frontend.js 8.25 kB
build/vendors--checkout-blocks/shipping-method-frontend.js 12.5 kB
build/vendors--price-filter-wrapper-frontend.js 2.2 kB
build/vendors--product-add-to-cart-frontend.js 7.26 kB
build/vendors--rating-filter-wrapper-frontend.js 5.1 kB
build/wc-blocks-data.js 22.3 kB
build/wc-blocks-editor-style-rtl.css 5.96 kB
build/wc-blocks-editor-style.css 5.96 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 933 B
build/wc-blocks-registry.js 3.15 kB
build/wc-blocks-shared-context.js 1.52 kB
build/wc-blocks-shared-hocs.js 1.75 kB
build/wc-blocks-style-rtl.css 27.9 kB
build/wc-blocks-style.css 27.8 kB
build/wc-blocks-vendors-style-rtl.css 1.96 kB
build/wc-blocks-vendors-style.css 1.96 kB
build/wc-blocks-vendors.js 65 kB
build/wc-blocks.js 3.7 kB
build/wc-payment-method-bacs.js 816 B
build/wc-payment-method-cheque.js 811 B
build/wc-payment-method-cod.js 909 B
build/wc-payment-method-paypal.js 837 B
build/wc-settings.js 2.6 kB
build/wc-shipping-method-pickup-location.js 30.3 kB
build/woo-directives-runtime.js 2.73 kB
build/woo-directives-vendors.js 7.91 kB

compressed-size-action

@gigitux gigitux force-pushed the add/enable-blockified-template-e2e-tests branch from f870b34 to 438cdfe Compare May 24, 2023 08:55
@gigitux gigitux self-assigned this May 24, 2023
@gigitux gigitux added focus: template Related to API powering block template functionality in the Site Editor skip-changelog PRs that you don't want to appear in the changelog. labels May 24, 2023
@gigitux gigitux force-pushed the add/enable-blockified-template-e2e-tests branch 3 times, most recently from d845beb to f3ced25 Compare May 24, 2023 11:43
@gigitux gigitux marked this pull request as ready for review May 24, 2023 11:58
@woocommercebot woocommercebot requested review from a team and imanish003 and removed request for a team May 24, 2023 11:58
@gigitux gigitux removed the request for review from imanish003 May 24, 2023 12:08
@gigitux gigitux force-pushed the add/enable-blockified-template-e2e-tests branch from 1ca38b6 to 87a5476 Compare May 24, 2023 14:34
@gigitux gigitux force-pushed the add/enable-blockified-template-e2e-tests branch 4 times, most recently from 73e586a to fe792be Compare May 25, 2023 10:12
@gigitux gigitux force-pushed the add/enable-blockified-template-e2e-tests branch from fe792be to fcfbf75 Compare May 25, 2023 10:29
@gigitux gigitux force-pushed the add/enable-blockified-templates-as-default branch from cf7c11f to 504507f Compare May 30, 2023 12:18
tests/e2e-pw/bin/test-env-setup.sh Outdated Show resolved Hide resolved
tests/e2e-pw/playwright.config.ts Show resolved Hide resolved
woocommerce-gutenberg-products-block.php Outdated Show resolved Hide resolved
@@ -213,7 +230,7 @@ describe( `${ block.name } Block`, () => {

await insertBlock( 'Products (Beta)' );
await insertBlock( block.name );
await page.waitForNetworkIdle();
// await page.waitForNetworkIdle();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can probably remove this line.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed with 6e39326

gigitux added 2 commits June 1, 2023 10:48
* migrate classic block to Playwright

* fix can be inserted more than once tests

* migrate classic block to Playwright

* fix command

* remove old tests

* improve E2E tests

* skip test

* Products block: add E2E pw tests

* Add E2E tests

* fix E2E test

* test now

* try now

* rename path

* set one worker

* try now

* try now

* try now

* set 1 worker
@gigitux gigitux merged commit c9f345d into add/enable-blockified-templates-as-default Jun 1, 2023
@gigitux gigitux deleted the add/enable-blockified-template-e2e-tests branch June 1, 2023 11:05
gigitux added a commit that referenced this pull request Jun 1, 2023
* Enable blockified templates

* add html template

* fix function

* WIP

* Migrate Classic Block E2E tests to Playwright (#9575)

* Add E2E tests

* add comment

* set worker to 1

* try now

* add beforeAll and afterAll hook

* restore woocommerce-gutenberg-products-block.php

* enable plugin with .wp-env configuration

* remove waitForNetworkIdle

* Products block: Add e2e tests (#9577)

* migrate classic block to Playwright

* fix can be inserted more than once tests

* migrate classic block to Playwright

* fix command

* remove old tests

* improve E2E tests

* skip test

* Products block: add E2E pw tests

* Add E2E tests

* fix E2E test

* test now

* try now

* rename path

* set one worker

* try now

* try now

* try now

* set 1 worker
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
focus: template Related to API powering block template functionality in the Site Editor skip-changelog PRs that you don't want to appear in the changelog.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants