From 4ef7899cf9b5864d18b5f770e8fc705697ceafcd Mon Sep 17 00:00:00 2001 From: himanshupathak95 Date: Tue, 28 Jan 2025 14:34:35 +0530 Subject: [PATCH 1/6] E2E: Add regression test for spacer block in themes without spacing units --- test/e2e/specs/editor/blocks/spacer.spec.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/e2e/specs/editor/blocks/spacer.spec.js b/test/e2e/specs/editor/blocks/spacer.spec.js index da262c9b4e26d9..4d79abed9913c9 100644 --- a/test/e2e/specs/editor/blocks/spacer.spec.js +++ b/test/e2e/specs/editor/blocks/spacer.spec.js @@ -48,4 +48,21 @@ test.describe( 'Spacer', () => { ) ).toBeFocused(); } ); + + test( 'should work in theme without spacing units support', async ( { + admin, + editor, + requestUtils, + } ) => { + await requestUtils.activateTheme( 'twentytwenty' ); + + await admin.createNewPost(); + await editor.insertBlock( { name: 'core/spacer' } ); + + await expect( + editor.canvas.locator( '.block-editor-warning' ) + ).toHaveCount( 0 ); + + await requestUtils.activateTheme( 'twentytwentyone' ); + } ); } ); From 285ce693cd06fd59a70c8c5d7b0f7e7ebcdafec8 Mon Sep 17 00:00:00 2001 From: himanshupathak95 Date: Tue, 4 Feb 2025 11:25:32 +0530 Subject: [PATCH 2/6] E2E: Simplify the warning expectation --- test/e2e/specs/editor/blocks/spacer.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/specs/editor/blocks/spacer.spec.js b/test/e2e/specs/editor/blocks/spacer.spec.js index 4d79abed9913c9..9d65cc8ec683c8 100644 --- a/test/e2e/specs/editor/blocks/spacer.spec.js +++ b/test/e2e/specs/editor/blocks/spacer.spec.js @@ -61,7 +61,7 @@ test.describe( 'Spacer', () => { await expect( editor.canvas.locator( '.block-editor-warning' ) - ).toHaveCount( 0 ); + ).not.toBeVisible(); await requestUtils.activateTheme( 'twentytwentyone' ); } ); From ef36763844e2d721b0b16e567a1e1d345859eb9c Mon Sep 17 00:00:00 2001 From: himanshupathak95 Date: Wed, 5 Feb 2025 12:15:07 +0530 Subject: [PATCH 3/6] E2E: Improve spacer block test by mocking theme settings --- test/e2e/specs/editor/blocks/spacer.spec.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/test/e2e/specs/editor/blocks/spacer.spec.js b/test/e2e/specs/editor/blocks/spacer.spec.js index 9d65cc8ec683c8..d969bda272d8f3 100644 --- a/test/e2e/specs/editor/blocks/spacer.spec.js +++ b/test/e2e/specs/editor/blocks/spacer.spec.js @@ -52,9 +52,16 @@ test.describe( 'Spacer', () => { test( 'should work in theme without spacing units support', async ( { admin, editor, - requestUtils, + page, } ) => { - await requestUtils.activateTheme( 'twentytwenty' ); + // Mock the theme.json data to simulate a theme without spacing units + await page.evaluate( () => { + window.__originalSettings = window.__experimentalGetSettings(); + window.__experimentalGetSettings = () => ( { + ...window.__originalSettings, + spacing: { units: false }, + } ); + } ); await admin.createNewPost(); await editor.insertBlock( { name: 'core/spacer' } ); @@ -63,6 +70,12 @@ test.describe( 'Spacer', () => { editor.canvas.locator( '.block-editor-warning' ) ).not.toBeVisible(); - await requestUtils.activateTheme( 'twentytwentyone' ); + await page.evaluate( () => { + if ( window.__originalSettings ) { + window.__experimentalGetSettings = () => + window.__originalSettings; + delete window.__originalSettings; + } + } ); } ); } ); From fb089130ae05b49f75b63e8e5ae2e166df51bba8 Mon Sep 17 00:00:00 2001 From: himanshupathak95 Date: Wed, 5 Feb 2025 12:32:50 +0530 Subject: [PATCH 4/6] E2E: Update test to use editor settings --- test/e2e/specs/editor/blocks/spacer.spec.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/test/e2e/specs/editor/blocks/spacer.spec.js b/test/e2e/specs/editor/blocks/spacer.spec.js index d969bda272d8f3..b522b358290542 100644 --- a/test/e2e/specs/editor/blocks/spacer.spec.js +++ b/test/e2e/specs/editor/blocks/spacer.spec.js @@ -56,9 +56,12 @@ test.describe( 'Spacer', () => { } ) => { // Mock the theme.json data to simulate a theme without spacing units await page.evaluate( () => { - window.__originalSettings = window.__experimentalGetSettings(); - window.__experimentalGetSettings = () => ( { - ...window.__originalSettings, + const settings = window.wp.data + .select( 'core/block-editor' ) + .getSettings(); + window.__originalSettings = settings; + window.wp.data.dispatch( 'core/block-editor' ).updateSettings( { + ...settings, spacing: { units: false }, } ); } ); @@ -68,12 +71,13 @@ test.describe( 'Spacer', () => { await expect( editor.canvas.locator( '.block-editor-warning' ) - ).not.toBeVisible(); + ).toBeHidden(); await page.evaluate( () => { if ( window.__originalSettings ) { - window.__experimentalGetSettings = () => - window.__originalSettings; + window.wp.data + .dispatch( 'core/block-editor' ) + .updateSettings( window.__originalSettings ); delete window.__originalSettings; } } ); From acb4d04a580784d9c97b57fa2b16792d8579da6e Mon Sep 17 00:00:00 2001 From: himanshupathak95 Date: Wed, 5 Feb 2025 12:57:16 +0530 Subject: [PATCH 5/6] E2E: Remove redundant post creation and remove settings cleanup --- test/e2e/specs/editor/blocks/spacer.spec.js | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/test/e2e/specs/editor/blocks/spacer.spec.js b/test/e2e/specs/editor/blocks/spacer.spec.js index b522b358290542..ba5de4ea758f90 100644 --- a/test/e2e/specs/editor/blocks/spacer.spec.js +++ b/test/e2e/specs/editor/blocks/spacer.spec.js @@ -50,7 +50,6 @@ test.describe( 'Spacer', () => { } ); test( 'should work in theme without spacing units support', async ( { - admin, editor, page, } ) => { @@ -66,20 +65,10 @@ test.describe( 'Spacer', () => { } ); } ); - await admin.createNewPost(); await editor.insertBlock( { name: 'core/spacer' } ); await expect( editor.canvas.locator( '.block-editor-warning' ) ).toBeHidden(); - - await page.evaluate( () => { - if ( window.__originalSettings ) { - window.wp.data - .dispatch( 'core/block-editor' ) - .updateSettings( window.__originalSettings ); - delete window.__originalSettings; - } - } ); } ); } ); From b0162385b345ea2b128ba807332183beae6b1a1e Mon Sep 17 00:00:00 2001 From: himanshupathak95 Date: Wed, 5 Feb 2025 13:49:44 +0530 Subject: [PATCH 6/6] E2E: Ensure window.wp.data is available before running the settings update --- test/e2e/specs/editor/blocks/spacer.spec.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/e2e/specs/editor/blocks/spacer.spec.js b/test/e2e/specs/editor/blocks/spacer.spec.js index ba5de4ea758f90..620d1a3c967b88 100644 --- a/test/e2e/specs/editor/blocks/spacer.spec.js +++ b/test/e2e/specs/editor/blocks/spacer.spec.js @@ -53,6 +53,8 @@ test.describe( 'Spacer', () => { editor, page, } ) => { + await page.waitForFunction( () => window?.wp?.data ); + // Mock the theme.json data to simulate a theme without spacing units await page.evaluate( () => { const settings = window.wp.data