From b39f621a17ae199d4a2ac05d1010b896059d12da Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Fri, 14 Jun 2024 11:41:12 +0200 Subject: [PATCH 1/4] Use events to proceed test when ready --- .../interactive-blocks/deferred-store/view.js | 22 +++++++++---------- .../interactivity/deferred-store.spec.ts | 2 ++ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js b/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js index 121727dcc467c..ddadd1ddc306e 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js @@ -3,18 +3,16 @@ */ import { store, getContext } from '@wordpress/interactivity'; -document.addEventListener( 'DOMContentLoaded', () => { - setTimeout( () => { - store( 'test/deferred-store', { - state: { - reversedText() { - return [ ...getContext().text ].reverse().join( '' ); - }, +globalThis.addEventListener( '_test_proceed_', () => { + store( 'test/deferred-store', { + state: { + reversedText() { + return [ ...getContext().text ].reverse().join( '' ); + }, - get reversedTextGetter() { - return [ ...getContext().text ].reverse().join( '' ); - }, + get reversedTextGetter() { + return [ ...getContext().text ].reverse().join( '' ); }, - } ); - }, 100 ); + }, + } ); } ); diff --git a/test/e2e/specs/interactivity/deferred-store.spec.ts b/test/e2e/specs/interactivity/deferred-store.spec.ts index 4521322e61dfc..58ca60aeb797c 100644 --- a/test/e2e/specs/interactivity/deferred-store.spec.ts +++ b/test/e2e/specs/interactivity/deferred-store.spec.ts @@ -21,6 +21,7 @@ test.describe( 'deferred store', () => { } ) => { const resultInput = page.getByTestId( 'result' ); await expect( resultInput ).toHaveText( '' ); + globalThis.dispatchEvent( new Event( '_test_proceed_' ) ); await expect( resultInput ).toHaveText( 'Hello, world!' ); } ); @@ -31,6 +32,7 @@ test.describe( 'deferred store', () => { } ) => { const resultInput = page.getByTestId( 'result-getter' ); await expect( resultInput ).toHaveText( '' ); + globalThis.dispatchEvent( new Event( '_test_proceed_' ) ); await expect( resultInput ).toHaveText( 'Hello, world!' ); } ); } ); From 822e1c4a6d2db78b6f9486c611c3fb81a63eb1b2 Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Fri, 14 Jun 2024 11:44:31 +0200 Subject: [PATCH 2/4] Initialize once on the event --- .../interactive-blocks/deferred-store/view.js | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js b/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js index ddadd1ddc306e..f2d419ae7d4b9 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js @@ -3,16 +3,20 @@ */ import { store, getContext } from '@wordpress/interactivity'; -globalThis.addEventListener( '_test_proceed_', () => { - store( 'test/deferred-store', { - state: { - reversedText() { - return [ ...getContext().text ].reverse().join( '' ); - }, +globalThis.addEventListener( + '_test_proceed_', + () => { + store( 'test/deferred-store', { + state: { + reversedText() { + return [ ...getContext().text ].reverse().join( '' ); + }, - get reversedTextGetter() { - return [ ...getContext().text ].reverse().join( '' ); + get reversedTextGetter() { + return [ ...getContext().text ].reverse().join( '' ); + }, }, - }, - } ); -} ); + } ); + }, + { once: true } +); From e49ffbd6a28c96570af173213738c0747c94de1e Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Fri, 14 Jun 2024 12:42:57 +0200 Subject: [PATCH 3/4] Use window not globalThis in test --- .../plugins/interactive-blocks/deferred-store/view.js | 2 +- test/e2e/specs/interactivity/deferred-store.spec.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js b/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js index f2d419ae7d4b9..d3803788c0d1b 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/deferred-store/view.js @@ -3,7 +3,7 @@ */ import { store, getContext } from '@wordpress/interactivity'; -globalThis.addEventListener( +window.addEventListener( '_test_proceed_', () => { store( 'test/deferred-store', { diff --git a/test/e2e/specs/interactivity/deferred-store.spec.ts b/test/e2e/specs/interactivity/deferred-store.spec.ts index 58ca60aeb797c..8fb1a74a25abd 100644 --- a/test/e2e/specs/interactivity/deferred-store.spec.ts +++ b/test/e2e/specs/interactivity/deferred-store.spec.ts @@ -21,7 +21,7 @@ test.describe( 'deferred store', () => { } ) => { const resultInput = page.getByTestId( 'result' ); await expect( resultInput ).toHaveText( '' ); - globalThis.dispatchEvent( new Event( '_test_proceed_' ) ); + window.dispatchEvent( new Event( '_test_proceed_' ) ); await expect( resultInput ).toHaveText( 'Hello, world!' ); } ); @@ -32,7 +32,7 @@ test.describe( 'deferred store', () => { } ) => { const resultInput = page.getByTestId( 'result-getter' ); await expect( resultInput ).toHaveText( '' ); - globalThis.dispatchEvent( new Event( '_test_proceed_' ) ); + window.dispatchEvent( new Event( '_test_proceed_' ) ); await expect( resultInput ).toHaveText( 'Hello, world!' ); } ); } ); From 3bfb495e63be43c70d4cbb4dbdb405fb975f2d93 Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Fri, 14 Jun 2024 13:51:34 +0200 Subject: [PATCH 4/4] Fix event dispatch in page --- test/e2e/specs/interactivity/deferred-store.spec.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/e2e/specs/interactivity/deferred-store.spec.ts b/test/e2e/specs/interactivity/deferred-store.spec.ts index 8fb1a74a25abd..b6a7853c40dcd 100644 --- a/test/e2e/specs/interactivity/deferred-store.spec.ts +++ b/test/e2e/specs/interactivity/deferred-store.spec.ts @@ -21,7 +21,9 @@ test.describe( 'deferred store', () => { } ) => { const resultInput = page.getByTestId( 'result' ); await expect( resultInput ).toHaveText( '' ); - window.dispatchEvent( new Event( '_test_proceed_' ) ); + await page.evaluate( () => { + window.dispatchEvent( new Event( '_test_proceed_' ) ); + } ); await expect( resultInput ).toHaveText( 'Hello, world!' ); } ); @@ -32,7 +34,9 @@ test.describe( 'deferred store', () => { } ) => { const resultInput = page.getByTestId( 'result-getter' ); await expect( resultInput ).toHaveText( '' ); - window.dispatchEvent( new Event( '_test_proceed_' ) ); + await page.evaluate( () => { + window.dispatchEvent( new Event( '_test_proceed_' ) ); + } ); await expect( resultInput ).toHaveText( 'Hello, world!' ); } ); } );