From cf3c1cda545cf1339bd4c44c0db52627629faae9 Mon Sep 17 00:00:00 2001 From: pooja-muchandikar Date: Tue, 13 Sep 2022 13:23:09 +0530 Subject: [PATCH 1/4] Migrate Preferences Test to Playwright --- .../specs/editor/various/preferences.test.js | 58 ------------------- .../specs/editor/various/preferences.spec.js | 50 ++++++++++++++++ 2 files changed, 50 insertions(+), 58 deletions(-) delete mode 100644 packages/e2e-tests/specs/editor/various/preferences.test.js create mode 100644 test/e2e/specs/editor/various/preferences.spec.js diff --git a/packages/e2e-tests/specs/editor/various/preferences.test.js b/packages/e2e-tests/specs/editor/various/preferences.test.js deleted file mode 100644 index 59445ecbe55528..00000000000000 --- a/packages/e2e-tests/specs/editor/various/preferences.test.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * WordPress dependencies - */ -import { createNewPost } from '@wordpress/e2e-test-utils'; - -describe( 'preferences', () => { - beforeAll( async () => { - await createNewPost(); - } ); - - /** - * Returns a promise which resolves to the text content of the active - * editor sidebar tab, or null if there is no active sidebar tab (closed). - * - * @return {Promise} Promise resolving to active tab. - */ - async function getActiveSidebarTabText() { - try { - return await page.$eval( - '.edit-post-sidebar__panel-tab.is-active', - ( node ) => node.textContent - ); - } catch ( error ) { - // page.$eval throws when it does not find the selector, which we - // can intentionally intercept and consider as there being no - // active sidebar tab (no sidebar). - return null; - } - } - - it( 'remembers sidebar dismissal between sessions', async () => { - // Open by default. - expect( await getActiveSidebarTabText() ).toBe( 'Post' ); - - // Change to "Block" tab. - await page.click( '.edit-post-sidebar__panel-tab[aria-label="Block"]' ); - expect( await getActiveSidebarTabText() ).toBe( 'Block' ); - - // Regression test: Reload resets to document tab. - // - // See: https://github.com/WordPress/gutenberg/issues/6377 - // See: https://github.com/WordPress/gutenberg/pull/8995 - await page.reload(); - await page.waitForSelector( '.edit-post-layout' ); - expect( await getActiveSidebarTabText() ).toBe( 'Post' ); - - // Dismiss. - await page.click( - '.edit-post-sidebar__panel-tabs [aria-label="Close settings"]' - ); - expect( await getActiveSidebarTabText() ).toBe( null ); - - // Remember after reload. - await page.reload(); - await page.waitForSelector( '.edit-post-layout' ); - expect( await getActiveSidebarTabText() ).toBe( null ); - } ); -} ); diff --git a/test/e2e/specs/editor/various/preferences.spec.js b/test/e2e/specs/editor/various/preferences.spec.js new file mode 100644 index 00000000000000..2906cbeebc3b0a --- /dev/null +++ b/test/e2e/specs/editor/various/preferences.spec.js @@ -0,0 +1,50 @@ +/** + * WordPress dependencies + */ +/** + * WordPress dependencies + */ +const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' ); + +test.describe( 'preferences', () => { + test.beforeEach( async ( { admin } ) => { + await admin.createNewPost(); + } ); + + test( 'remembers sidebar dismissal between sessions', async ( { + page, + } ) => { + // Open by default. + await expect( + page.locator( '.edit-post-sidebar__panel-tab.is-active' ) + ).toHaveText( 'Post' ); + + // Change to "Block" tab. + await page.click( 'role=button[name="Block"i]' ); + + // Regression test: Reload resets to document tab. + // + // See: https://github.com/WordPress/gutenberg/issues/6377 + // See: https://github.com/WordPress/gutenberg/pull/8995 + await page.reload(); + await page.waitForSelector( '.edit-post-layout' ); + await expect( + page.locator( '.edit-post-sidebar__panel-tab.is-active' ) + ).toHaveText( 'Post' ); + + // Dismiss. + await page.click( + '.edit-post-sidebar__panel-tabs [aria-label="Close settings"]' + ); + await expect( + page.locator( '.edit-post-sidebar__panel-tab.is-active' ) + ).not.toBeVisible(); + + // Remember after reload. + await page.reload(); + await page.waitForSelector( '.edit-post-layout' ); + await expect( + page.locator( '.edit-post-sidebar__panel-tab.is-active' ) + ).not.toBeVisible(); + } ); +} ); From 49ed153529057c5e97ecba6aaff67ef7af597b4b Mon Sep 17 00:00:00 2001 From: pooja-muchandikar Date: Tue, 13 Sep 2022 16:46:41 +0530 Subject: [PATCH 2/4] Fix CI issue --- test/e2e/specs/editor/various/preferences.spec.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/e2e/specs/editor/various/preferences.spec.js b/test/e2e/specs/editor/various/preferences.spec.js index 2906cbeebc3b0a..2116277615c90f 100644 --- a/test/e2e/specs/editor/various/preferences.spec.js +++ b/test/e2e/specs/editor/various/preferences.spec.js @@ -1,6 +1,3 @@ -/** - * WordPress dependencies - */ /** * WordPress dependencies */ @@ -16,12 +13,16 @@ test.describe( 'preferences', () => { } ) => { // Open by default. await expect( - page.locator( '.edit-post-sidebar__panel-tab.is-active' ) + page.locator( "button[aria-label='Post (selected)']" ) ).toHaveText( 'Post' ); // Change to "Block" tab. await page.click( 'role=button[name="Block"i]' ); + await expect( + page.locator( "button[aria-label='Block (selected)']" ) + ).toHaveText( 'Block' ); + // Regression test: Reload resets to document tab. // // See: https://github.com/WordPress/gutenberg/issues/6377 @@ -29,7 +30,7 @@ test.describe( 'preferences', () => { await page.reload(); await page.waitForSelector( '.edit-post-layout' ); await expect( - page.locator( '.edit-post-sidebar__panel-tab.is-active' ) + page.locator( "button[aria-label='Post (selected)']" ) ).toHaveText( 'Post' ); // Dismiss. From dcb7e1f2b3e7f8222fe88e81f662382e88ea566f Mon Sep 17 00:00:00 2001 From: pooja-muchandikar Date: Wed, 14 Sep 2022 14:45:58 +0530 Subject: [PATCH 3/4] Fix failing CI issue --- .../specs/editor/various/preferences.spec.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/test/e2e/specs/editor/various/preferences.spec.js b/test/e2e/specs/editor/various/preferences.spec.js index 2116277615c90f..58c7afd207ee34 100644 --- a/test/e2e/specs/editor/various/preferences.spec.js +++ b/test/e2e/specs/editor/various/preferences.spec.js @@ -4,23 +4,25 @@ const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' ); test.describe( 'preferences', () => { - test.beforeEach( async ( { admin } ) => { - await admin.createNewPost(); - } ); - test( 'remembers sidebar dismissal between sessions', async ( { page, + admin, } ) => { + await admin.createNewPost(); // Open by default. await expect( - page.locator( "button[aria-label='Post (selected)']" ) + page.locator( + '.components-button.edit-post-sidebar__panel-tab.is-active' + ) ).toHaveText( 'Post' ); // Change to "Block" tab. await page.click( 'role=button[name="Block"i]' ); await expect( - page.locator( "button[aria-label='Block (selected)']" ) + page.locator( + '.components-button.edit-post-sidebar__panel-tab.is-active' + ) ).toHaveText( 'Block' ); // Regression test: Reload resets to document tab. @@ -30,7 +32,9 @@ test.describe( 'preferences', () => { await page.reload(); await page.waitForSelector( '.edit-post-layout' ); await expect( - page.locator( "button[aria-label='Post (selected)']" ) + page.locator( + '.components-button.edit-post-sidebar__panel-tab.is-active' + ) ).toHaveText( 'Post' ); // Dismiss. From 9cdf3e0cccf6a879b564cefc3688bcf9c1bcb142 Mon Sep 17 00:00:00 2001 From: pooja-muchandikar Date: Fri, 16 Sep 2022 15:15:30 +0530 Subject: [PATCH 4/4] Address feedbacks --- .../specs/editor/various/preferences.spec.js | 33 +++++-------------- 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/test/e2e/specs/editor/various/preferences.spec.js b/test/e2e/specs/editor/various/preferences.spec.js index 58c7afd207ee34..8505d5be22ce3b 100644 --- a/test/e2e/specs/editor/various/preferences.spec.js +++ b/test/e2e/specs/editor/various/preferences.spec.js @@ -8,21 +8,17 @@ test.describe( 'preferences', () => { page, admin, } ) => { + const post = 'role=button[name="Post (selected)"i]'; await admin.createNewPost(); // Open by default. - await expect( - page.locator( - '.components-button.edit-post-sidebar__panel-tab.is-active' - ) - ).toHaveText( 'Post' ); + + await expect( page.locator( post ) ).toHaveText( 'Post' ); // Change to "Block" tab. await page.click( 'role=button[name="Block"i]' ); await expect( - page.locator( - '.components-button.edit-post-sidebar__panel-tab.is-active' - ) + page.locator( 'role=button[name="Block (selected)"i]' ) ).toHaveText( 'Block' ); // Regression test: Reload resets to document tab. @@ -30,26 +26,15 @@ test.describe( 'preferences', () => { // See: https://github.com/WordPress/gutenberg/issues/6377 // See: https://github.com/WordPress/gutenberg/pull/8995 await page.reload(); - await page.waitForSelector( '.edit-post-layout' ); - await expect( - page.locator( - '.components-button.edit-post-sidebar__panel-tab.is-active' - ) - ).toHaveText( 'Post' ); + await expect( page.locator( post ) ).toHaveText( 'Post' ); // Dismiss. - await page.click( - '.edit-post-sidebar__panel-tabs [aria-label="Close settings"]' - ); - await expect( - page.locator( '.edit-post-sidebar__panel-tab.is-active' ) - ).not.toBeVisible(); + await page.click( 'role=button[name="Close settings"i]' ); + await expect( page.locator( post ) ).not.toBeVisible(); // Remember after reload. await page.reload(); - await page.waitForSelector( '.edit-post-layout' ); - await expect( - page.locator( '.edit-post-sidebar__panel-tab.is-active' ) - ).not.toBeVisible(); + + await expect( page.locator( post ) ).not.toBeVisible(); } ); } );