Skip to content

Commit

Permalink
Add simple test for server context
Browse files Browse the repository at this point in the history
  • Loading branch information
DAreRodz committed Sep 18, 2024
1 parent d81f58d commit 7e6f530
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -151,14 +151,16 @@
<div
data-wp-interactive='{"namespace": "directive-context-navigate"}'
data-wp-router-region="navigation"
data-wp-context='{ "text": "first page" }'
data-wp-context='{ "text": "first page", "serverText": "first page" }'
>
<div data-wp-context='{}'>
<div data-testid="navigation inherited text" data-wp-text="context.text"></div>
<div data-testid="navigation inherited text2" data-wp-text="context.text2"></div>
</div>
<div data-testid="navigation text" data-wp-text="context.text"></div>
<div data-testid="navigation new text" data-wp-text="context.newText"></div>
<div data-testid="navigation server text" data-wp-text="context.serverText"></div>
<div data-testid="server text" data-wp-text="context.serverText" data-wp-watch="callbacks.updateServerText"></div>
<button data-testid="toggle text" data-wp-on--click="actions.toggleText">Toggle Text</button>
<button data-testid="add new text" data-wp-on--click="actions.addNewText">Add New Text</button>
<button data-testid="add text2" data-wp-on--click="actions.addText2">Add Text 2</button>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* WordPress dependencies
*/
import { store, getContext } from '@wordpress/interactivity';
import { store, getContext, getServerContext } from '@wordpress/interactivity';

store( 'directive-context', {
state: {
Expand Down Expand Up @@ -55,14 +55,15 @@ const html = `
<div
data-wp-interactive="directive-context-navigate"
data-wp-router-region="navigation"
data-wp-context='{ "text": "second page", "text2": "second page" }'
data-wp-context='{ "text": "second page", "text2": "second page", "serverText": "second page" }'
>
<div data-wp-context='{}'>
<div data-testid="navigation inherited text" data-wp-text="context.text"></div>
<div data-testid="navigation inherited text2" data-wp-text="context.text2"></div>
</div>
<div data-testid="navigation text" data-wp-text="context.text"></div>
<div data-testid="navigation new text" data-wp-text="context.newText"></div>
<div data-testid="navigation server text" data-wp-text="context.serverText"></div>
<button data-testid="toggle text" data-wp-on--click="actions.toggleText">Toggle Text</button>
<button data-testid="add new text" data-wp-on--click="actions.addNewText">Add New Text</button>
<button data-testid="add text2" data-wp-on--click="actions.addText2">Add Text 2</button>
Expand Down Expand Up @@ -99,6 +100,12 @@ const { actions } = store( 'directive-context-navigate', {
ctx.newText = 'changed from async action';
},
},
callbacks: {
updateServerText() {
const ctx = getContext();
ctx.serverText = getServerContext().serverText;
},
},
} );

store( 'directive-context-watch', {
Expand Down
2 changes: 1 addition & 1 deletion packages/interactivity/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import { parseServerData, populateServerData } from './store';
import { proxifyState } from './proxies';

export { store, getConfig } from './store';
export { getContext, getElement } from './scopes';
export { getContext, getServerContext, getElement } from './scopes';
export {
withScope,
useWatch,
Expand Down
7 changes: 7 additions & 0 deletions test/e2e/specs/interactivity/directive-context.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -395,4 +395,11 @@ test.describe( 'data-wp-context', () => {
await expect( childProp ).toHaveText( 'fromChildNs' );
await expect( parentProp ).toHaveText( 'fromParentNs' );
} );

test( 'should update server context on navigation', async ( { page } ) => {
const element = page.getByTestId( 'navigation server text' );
await expect( element ).toHaveText( 'first page' );
await page.getByTestId( 'navigate' ).click();
await expect( element ).toHaveText( 'second page' );
} );
} );

0 comments on commit 7e6f530

Please sign in to comment.