Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[e2e tests] Improve execution time by disabling the welcomeGuide feature instead of waiting for the modal #45132

Merged
merged 13 commits into from Feb 28, 2024
Merged
@@ -0,0 +1,4 @@
Significance: patch
Type: dev

E2E tests: improve execution time by disabling the welcomeGuide feature instead of waiting for the modal
@@ -1,5 +1,5 @@
const { test, expect } = require( '@playwright/test' );
const { closeWelcomeModal } = require( '../../utils/editor' );
const { disableWelcomeModal } = require( '../../utils/editor' );

const transformedCartBlockTitle = `Transformed Cart ${ Date.now() }`;
const transformedCartBlockSlug = transformedCartBlockTitle
Expand All @@ -13,7 +13,7 @@ test.describe( 'Transform Classic Cart To Cart Block', () => {
// go to create a new page
await page.goto( 'wp-admin/post-new.php?post_type=page' );

await closeWelcomeModal( { page } );
await disableWelcomeModal( { page } );

// fill page title
await page
Expand Down
@@ -1,6 +1,6 @@
const { test, expect } = require( '@playwright/test' );
const { admin } = require( '../../test-data/data' );
const { closeWelcomeModal } = require( '../../utils/editor' );
const { disableWelcomeModal } = require( '../../utils/editor' );
const wcApi = require( '@woocommerce/woocommerce-rest-api' ).default;

const firstProductName = 'First Product';
Expand Down Expand Up @@ -142,12 +142,11 @@ test.describe( 'Cart Block Calculate Shipping', () => {
test( 'create Cart Block page', async ( { page } ) => {
// create a new page with cart block
await page.goto( 'wp-admin/post-new.php?post_type=page' );
await page.waitForLoadState( 'networkidle' );
await page.locator( 'input[name="log"]' ).fill( admin.username );
await page.locator( 'input[name="pwd"]' ).fill( admin.password );
await page.locator( 'text=Log In' ).click();

await closeWelcomeModal( { page } );
await disableWelcomeModal( { page } );

await page
.getByRole( 'textbox', { name: 'Add title' } )
Expand Down
@@ -1,6 +1,6 @@
const { test, expect } = require( '@playwright/test' );
const { admin } = require( '../../test-data/data' );
const { closeWelcomeModal } = require( '../../utils/editor' );
const { disableWelcomeModal } = require( '../../utils/editor' );
const wcApi = require( '@woocommerce/woocommerce-rest-api' ).default;

const simpleProductName = 'Cart Coupons Product';
Expand Down Expand Up @@ -124,12 +124,11 @@ test.describe( 'Cart Block Applying Coupons', () => {
test( 'can create Cart Block page', async ( { page } ) => {
// create a new page with cart block
await page.goto( 'wp-admin/post-new.php?post_type=page' );
await page.waitForLoadState( 'networkidle' );
await page.locator( 'input[name="log"]' ).fill( admin.username );
await page.locator( 'input[name="pwd"]' ).fill( admin.password );
await page.locator( 'text=Log In' ).click();

await closeWelcomeModal( { page } );
await disableWelcomeModal( { page } );

await page
.getByRole( 'textbox', { name: 'Add title' } )
Expand Down
@@ -1,5 +1,5 @@
const { test, expect } = require( '@playwright/test' );
const { closeWelcomeModal } = require( '../../utils/editor' );
const { disableWelcomeModal } = require( '../../utils/editor' );
const wcApi = require( '@woocommerce/woocommerce-rest-api' ).default;

const simpleProductName = 'Single Simple Product';
Expand Down Expand Up @@ -88,7 +88,7 @@ test.describe( 'Cart Block page', () => {
// create a new page with cart block
await page.goto( 'wp-admin/post-new.php?post_type=page' );

await closeWelcomeModal( { page } );
await disableWelcomeModal( { page } );

await page
.getByRole( 'textbox', { name: 'Add title' } )
Expand Down
@@ -1,7 +1,7 @@
const { test, expect } = require( '@playwright/test' );
const wcApi = require( '@woocommerce/woocommerce-rest-api' ).default;
const { admin } = require( '../../test-data/data' );
const { closeWelcomeModal } = require( '../../utils/editor' );
const { disableWelcomeModal } = require( '../../utils/editor' );

const productName = 'First Product Cart Block Taxing';
const productPrice = '100.00';
Expand Down Expand Up @@ -108,12 +108,11 @@ test.describe( 'Shopper Cart & Checkout Block Tax Display', () => {
test( 'can create Cart Block page', async ( { page } ) => {
// create a new page with cart block
await page.goto( 'wp-admin/post-new.php?post_type=page' );
await page.waitForLoadState( 'networkidle' );
await page.locator( 'input[name="log"]' ).fill( admin.username );
await page.locator( 'input[name="pwd"]' ).fill( admin.password );
await page.locator( 'text=Log In' ).click();

await closeWelcomeModal( { page } );
await disableWelcomeModal( { page } );

await page
.getByRole( 'textbox', { name: 'Add title' } )
Expand All @@ -140,19 +139,11 @@ test.describe( 'Shopper Cart & Checkout Block Tax Display', () => {
test( 'can create Checkout Block page', async ( { page } ) => {
// create a new page with checkout block
await page.goto( 'wp-admin/post-new.php?post_type=page' );
await page.waitForLoadState( 'networkidle' );
await page.locator( 'input[name="log"]' ).fill( admin.username );
await page.locator( 'input[name="pwd"]' ).fill( admin.password );
await page.locator( 'text=Log In' ).click();

// Close welcome popup if prompted
try {
await page
.getByLabel( 'Close', { exact: true } )
.click( { timeout: 5000 } );
} catch ( error ) {
console.log( "Welcome modal wasn't present, skipping action." );
}
await disableWelcomeModal( { page } );

await page
.getByRole( 'textbox', { name: 'Add title' } )
Expand Down
@@ -1,5 +1,5 @@
const { test, expect } = require( '@playwright/test' );
const { closeWelcomeModal } = require( '../../utils/editor' );
const { disableWelcomeModal } = require( '../../utils/editor' );
const wcApi = require( '@woocommerce/woocommerce-rest-api' ).default;

const miniCartPageTitle = `Mini Cart ${ Date.now() }`;
Expand Down Expand Up @@ -121,7 +121,7 @@ test.describe( 'Mini Cart block page', () => {
// create a new page with mini cart block
await page.goto( 'wp-admin/post-new.php?post_type=page' );

await closeWelcomeModal( { page } );
await disableWelcomeModal( { page } );

await page
.getByRole( 'textbox', { name: 'Add title' } )
Expand Down
@@ -1,5 +1,5 @@
const { test, expect } = require( '@playwright/test' );
const { closeWelcomeModal } = require( '../../utils/editor' );
const { disableWelcomeModal } = require( '../../utils/editor' );
const wcApi = require( '@woocommerce/woocommerce-rest-api' ).default;

const singleProductPrice1 = '10';
Expand Down Expand Up @@ -75,7 +75,7 @@ test.describe( 'Filter items in the shop by product price', () => {
// go to create a new page with filtering products by price
await page.goto( 'wp-admin/post-new.php?post_type=page' );

await closeWelcomeModal( { page } );
await disableWelcomeModal( { page } );

await page
.getByRole( 'textbox', { name: 'Add title' } )
Expand Down
7 changes: 5 additions & 2 deletions plugins/woocommerce/tests/e2e-pw/utils/editor.js
Expand Up @@ -10,6 +10,9 @@
};

const disableWelcomeModal = async ( { page } ) => {
await page.waitForLoadState();
await page.waitForFunction( () => window?.wp?.data );

Check failure on line 14 in plugins/woocommerce/tests/e2e-pw/utils/editor.js

View workflow job for this annotation

GitHub Actions / Runs E2E tests with HPOS disabled. (4, 4/5)

[Chrome] › shopper/cart-block-coupons.spec.js:124:2 › Cart Block Applying Coupons › can create Cart Block page

1) [Chrome] › shopper/cart-block-coupons.spec.js:124:2 › Cart Block Applying Coupons › can create Cart Block page Error: page.waitForFunction: Timeout 20000ms exceeded. at ../utils/editor.js:14 12 | const disableWelcomeModal = async ( { page } ) => { 13 | await page.waitForLoadState(); > 14 | await page.waitForFunction( () => window?.wp?.data ); | ^ 15 | 16 | const isWelcomeGuideActive = await page.evaluate( () => 17 | wp.data.select( 'core/edit-post' ).isFeatureActive( 'welcomeGuide' ) at disableWelcomeModal (/home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/utils/editor.js:14:13) at /home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/tests/shopper/cart-block-coupons.spec.js:131:3

Check failure on line 14 in plugins/woocommerce/tests/e2e-pw/utils/editor.js

View workflow job for this annotation

GitHub Actions / Runs E2E tests in matrix. (4, 4/5)

[Chrome] › shopper/cart-checkout-block-calculate-tax.spec.js:108:2 › Shopper Cart & Checkout Block Tax Display › can create Cart Block page

1) [Chrome] › shopper/cart-checkout-block-calculate-tax.spec.js:108:2 › Shopper Cart & Checkout Block Tax Display › can create Cart Block page Error: page.waitForFunction: Timeout 20000ms exceeded. at ../utils/editor.js:14 12 | const disableWelcomeModal = async ( { page } ) => { 13 | await page.waitForLoadState(); > 14 | await page.waitForFunction( () => window?.wp?.data ); | ^ 15 | 16 | const isWelcomeGuideActive = await page.evaluate( () => 17 | wp.data.select( 'core/edit-post' ).isFeatureActive( 'welcomeGuide' ) at disableWelcomeModal (/home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/utils/editor.js:14:13) at /home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/tests/shopper/cart-checkout-block-calculate-tax.spec.js:115:3

Check failure on line 14 in plugins/woocommerce/tests/e2e-pw/utils/editor.js

View workflow job for this annotation

GitHub Actions / Runs E2E tests in matrix. (4, 4/5)

[Chrome] › shopper/cart-checkout-block-calculate-tax.spec.js:108:2 › Shopper Cart & Checkout Block Tax Display › can create Cart Block page

1) [Chrome] › shopper/cart-checkout-block-calculate-tax.spec.js:108:2 › Shopper Cart & Checkout Block Tax Display › can create Cart Block page Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: page.waitForFunction: Timeout 20000ms exceeded. at ../utils/editor.js:14 12 | const disableWelcomeModal = async ( { page } ) => { 13 | await page.waitForLoadState(); > 14 | await page.waitForFunction( () => window?.wp?.data ); | ^ 15 | 16 | const isWelcomeGuideActive = await page.evaluate( () => 17 | wp.data.select( 'core/edit-post' ).isFeatureActive( 'welcomeGuide' ) at disableWelcomeModal (/home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/utils/editor.js:14:13) at /home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/tests/shopper/cart-checkout-block-calculate-tax.spec.js:115:3

Check failure on line 14 in plugins/woocommerce/tests/e2e-pw/utils/editor.js

View workflow job for this annotation

GitHub Actions / Run E2E tests

[Chrome] › shopper/cart-block-calculate-shipping.spec.js:142:2 › Cart Block Calculate Shipping › create Cart Block page

1) [Chrome] › shopper/cart-block-calculate-shipping.spec.js:142:2 › Cart Block Calculate Shipping › create Cart Block page Error: page.waitForFunction: Timeout 20000ms exceeded. at ../utils/editor.js:14 12 | const disableWelcomeModal = async ( { page } ) => { 13 | await page.waitForLoadState(); > 14 | await page.waitForFunction( () => window?.wp?.data ); | ^ 15 | 16 | const isWelcomeGuideActive = await page.evaluate( () => 17 | wp.data.select( 'core/edit-post' ).isFeatureActive( 'welcomeGuide' ) at disableWelcomeModal (/home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/utils/editor.js:14:13) at /home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/tests/shopper/cart-block-calculate-shipping.spec.js:149:3

Check failure on line 14 in plugins/woocommerce/tests/e2e-pw/utils/editor.js

View workflow job for this annotation

GitHub Actions / Run E2E tests

[Chrome] › shopper/cart-checkout-block-calculate-tax.spec.js:108:2 › Shopper Cart & Checkout Block Tax Display › can create Cart Block page

2) [Chrome] › shopper/cart-checkout-block-calculate-tax.spec.js:108:2 › Shopper Cart & Checkout Block Tax Display › can create Cart Block page Error: page.waitForFunction: Timeout 20000ms exceeded. at ../utils/editor.js:14 12 | const disableWelcomeModal = async ( { page } ) => { 13 | await page.waitForLoadState(); > 14 | await page.waitForFunction( () => window?.wp?.data ); | ^ 15 | 16 | const isWelcomeGuideActive = await page.evaluate( () => 17 | wp.data.select( 'core/edit-post' ).isFeatureActive( 'welcomeGuide' ) at disableWelcomeModal (/home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/utils/editor.js:14:13) at /home/runner/work/woocommerce/woocommerce/plugins/woocommerce/tests/e2e-pw/tests/shopper/cart-checkout-block-calculate-tax.spec.js:115:3

const isWelcomeGuideActive = await page.evaluate( () =>
wp.data.select( 'core/edit-post' ).isFeatureActive( 'welcomeGuide' )
);
Expand All @@ -24,13 +27,13 @@
const goToPageEditor = async ( { page } ) => {
await page.goto( 'wp-admin/post-new.php?post_type=page' );

await closeWelcomeModal( { page } );
await disableWelcomeModal( { page } );
};

const goToPostEditor = async ( { page } ) => {
await page.goto( 'wp-admin/post-new.php' );

await closeWelcomeModal( { page } );
await disableWelcomeModal( { page } );
};

module.exports = {
Expand Down