@wordpress/e2e-tests 7.23.0 → 7.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/package.json +9 -9
- package/plugins/block-bindings.php +19 -1
- package/plugins/interactive-blocks/deferred-store/block.json +15 -0
- package/plugins/interactive-blocks/deferred-store/render.php +15 -0
- package/plugins/interactive-blocks/deferred-store/view.asset.php +1 -0
- package/plugins/interactive-blocks/deferred-store/view.js +20 -0
- package/plugins/interactive-blocks/directive-bind/block.json +1 -1
- package/plugins/interactive-blocks/directive-bind/render.php +0 -2
- package/plugins/interactive-blocks/directive-bind/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-class/block.json +1 -1
- package/plugins/interactive-blocks/directive-class/render.php +0 -2
- package/plugins/interactive-blocks/directive-class/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-context/block.json +1 -1
- package/plugins/interactive-blocks/directive-context/render.php +71 -2
- package/plugins/interactive-blocks/directive-context/view.asset.php +9 -0
- package/plugins/interactive-blocks/directive-context/view.js +60 -7
- package/plugins/interactive-blocks/directive-each/block.json +1 -1
- package/plugins/interactive-blocks/directive-each/render.php +0 -2
- package/plugins/interactive-blocks/directive-each/view.asset.php +9 -0
- package/plugins/interactive-blocks/directive-init/block.json +1 -1
- package/plugins/interactive-blocks/directive-init/render.php +0 -2
- package/plugins/interactive-blocks/directive-init/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-key/block.json +1 -1
- package/plugins/interactive-blocks/directive-key/render.php +0 -2
- package/plugins/interactive-blocks/directive-key/view.asset.php +9 -0
- package/plugins/interactive-blocks/directive-on/block.json +1 -1
- package/plugins/interactive-blocks/directive-on/render.php +0 -2
- package/plugins/interactive-blocks/directive-on/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-on-document/block.json +1 -1
- package/plugins/interactive-blocks/directive-on-document/render.php +0 -2
- package/plugins/interactive-blocks/directive-on-document/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-on-window/block.json +1 -1
- package/plugins/interactive-blocks/directive-on-window/render.php +0 -2
- package/plugins/interactive-blocks/directive-on-window/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-priorities/block.json +1 -1
- package/plugins/interactive-blocks/directive-priorities/render.php +0 -2
- package/plugins/interactive-blocks/directive-priorities/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-run/block.json +1 -1
- package/plugins/interactive-blocks/directive-run/render.php +0 -2
- package/plugins/interactive-blocks/directive-run/view.asset.php +9 -0
- package/plugins/interactive-blocks/directive-style/block.json +1 -1
- package/plugins/interactive-blocks/directive-style/render.php +0 -2
- package/plugins/interactive-blocks/directive-style/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-text/block.json +1 -1
- package/plugins/interactive-blocks/directive-text/render.php +0 -2
- package/plugins/interactive-blocks/directive-text/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-watch/block.json +1 -1
- package/plugins/interactive-blocks/directive-watch/render.php +0 -2
- package/plugins/interactive-blocks/directive-watch/view.asset.php +1 -0
- package/plugins/interactive-blocks/generator-scope/block.json +15 -0
- package/plugins/interactive-blocks/generator-scope/render.php +16 -0
- package/plugins/interactive-blocks/generator-scope/view.asset.php +1 -0
- package/plugins/interactive-blocks/generator-scope/view.js +23 -0
- package/plugins/interactive-blocks/negation-operator/block.json +1 -1
- package/plugins/interactive-blocks/negation-operator/render.php +0 -2
- package/plugins/interactive-blocks/negation-operator/view.asset.php +1 -0
- package/plugins/interactive-blocks/router-navigate/block.json +1 -1
- package/plugins/interactive-blocks/router-navigate/render.php +37 -22
- package/plugins/interactive-blocks/router-navigate/view.asset.php +9 -0
- package/plugins/interactive-blocks/router-navigate/view.js +13 -4
- package/plugins/interactive-blocks/router-regions/block.json +1 -1
- package/plugins/interactive-blocks/router-regions/render.php +0 -2
- package/plugins/interactive-blocks/router-regions/view.asset.php +9 -0
- package/plugins/interactive-blocks/store/block.json +1 -1
- package/plugins/interactive-blocks/store/render.php +2 -3
- package/plugins/interactive-blocks/store/view.asset.php +1 -0
- package/plugins/interactive-blocks/store/view.js +7 -4
- package/plugins/interactive-blocks/store-tag/block.json +1 -1
- package/plugins/interactive-blocks/store-tag/render.php +0 -2
- package/plugins/interactive-blocks/store-tag/view.asset.php +1 -0
- package/plugins/interactive-blocks/tovdom/block.json +1 -1
- package/plugins/interactive-blocks/tovdom/render.php +0 -2
- package/plugins/interactive-blocks/tovdom/view.asset.php +1 -0
- package/plugins/interactive-blocks/tovdom-islands/block.json +1 -1
- package/plugins/interactive-blocks/tovdom-islands/render.php +0 -2
- package/plugins/interactive-blocks/tovdom-islands/view.asset.php +1 -0
- package/plugins/interactive-blocks/with-scope/block.json +1 -1
- package/plugins/interactive-blocks/with-scope/render.php +0 -2
- package/plugins/interactive-blocks/with-scope/view.asset.php +1 -0
- package/plugins/interactive-blocks.php +4 -21
- package/specs/editor/various/autosave.test.js +0 -346
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://schemas.wp.org/trunk/block.json",
|
3
|
+
"apiVersion": 2,
|
4
|
+
"name": "test/generator-scope",
|
5
|
+
"title": "E2E Interactivity tests - generator scope",
|
6
|
+
"category": "text",
|
7
|
+
"icon": "heart",
|
8
|
+
"description": "",
|
9
|
+
"supports": {
|
10
|
+
"interactivity": true
|
11
|
+
},
|
12
|
+
"textdomain": "e2e-interactivity",
|
13
|
+
"viewScriptModule": "file:./view.js",
|
14
|
+
"render": "file:./render.php"
|
15
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* HTML for testing scope restoration with generators.
|
4
|
+
*
|
5
|
+
* @package gutenberg-test-interactive-blocks
|
6
|
+
*/
|
7
|
+
?>
|
8
|
+
|
9
|
+
<div
|
10
|
+
data-wp-interactive="test/generator-scope"
|
11
|
+
<?php echo wp_interactivity_data_wp_context( array( 'result' => '' ) ); ?>
|
12
|
+
>
|
13
|
+
<input readonly data-wp-bind--value="context.result" data-testid="result" />
|
14
|
+
<button type="button" data-wp-on--click="callbacks.resolve" data-testid="resolve">Async resolve</button>
|
15
|
+
<button type="button" data-wp-on--click="callbacks.reject" data-testid="reject">Async reject</button>
|
16
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* WordPress dependencies
|
3
|
+
*/
|
4
|
+
import { store, getContext } from '@wordpress/interactivity';
|
5
|
+
|
6
|
+
store( 'test/generator-scope', {
|
7
|
+
callbacks: {
|
8
|
+
*resolve() {
|
9
|
+
try {
|
10
|
+
getContext().result = yield Promise.resolve( 'ok' );
|
11
|
+
} catch ( err ) {
|
12
|
+
getContext().result = err.toString();
|
13
|
+
}
|
14
|
+
},
|
15
|
+
*reject() {
|
16
|
+
try {
|
17
|
+
getContext().result = yield Promise.reject( new Error( '😘' ) );
|
18
|
+
} catch ( err ) {
|
19
|
+
getContext().result = err.toString();
|
20
|
+
}
|
21
|
+
},
|
22
|
+
},
|
23
|
+
} );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -7,14 +7,19 @@
|
|
7
7
|
* @phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
|
8
8
|
*/
|
9
9
|
|
10
|
-
wp_enqueue_script_module( 'router-navigate-view' );
|
11
|
-
|
12
10
|
if ( $attributes['disableNavigation'] ) {
|
13
11
|
wp_interactivity_config(
|
14
12
|
'core/router',
|
15
13
|
array( 'clientNavigationDisabled' => true )
|
16
14
|
);
|
17
15
|
}
|
16
|
+
|
17
|
+
if ( isset( $attributes['data'] ) ) {
|
18
|
+
wp_interactivity_state(
|
19
|
+
'router',
|
20
|
+
array( 'data' => $attributes['data'] )
|
21
|
+
);
|
22
|
+
}
|
18
23
|
?>
|
19
24
|
|
20
25
|
<div
|
@@ -24,8 +29,12 @@ if ( $attributes['disableNavigation'] ) {
|
|
24
29
|
<h2 data-testid="title"><?php echo $attributes['title']; ?></h2>
|
25
30
|
|
26
31
|
<output
|
27
|
-
data-testid="router navigations"
|
28
|
-
data-wp-text="state.navigations"
|
32
|
+
data-testid="router navigations pending"
|
33
|
+
data-wp-text="state.navigations.pending"
|
34
|
+
>NaN</output>
|
35
|
+
<output
|
36
|
+
data-testid="router navigations count"
|
37
|
+
data-wp-text="state.navigations.count"
|
29
38
|
>NaN</output>
|
30
39
|
<output
|
31
40
|
data-testid="router status"
|
@@ -39,24 +48,30 @@ if ( $attributes['disableNavigation'] ) {
|
|
39
48
|
Timeout <span data-wp-text="state.timeout">NaN</span>
|
40
49
|
</button>
|
41
50
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
$
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
51
|
+
<nav>
|
52
|
+
<?php
|
53
|
+
if ( isset( $attributes['links'] ) ) {
|
54
|
+
foreach ( $attributes['links'] as $key => $link ) {
|
55
|
+
$i = $key += 1;
|
56
|
+
echo <<<HTML
|
57
|
+
<a
|
58
|
+
data-testid="link $i"
|
59
|
+
data-wp-on--click="actions.navigate"
|
60
|
+
href="$link"
|
61
|
+
>link $i</a>
|
62
|
+
<a
|
63
|
+
data-testid="link $i with hash"
|
64
|
+
data-wp-on--click="actions.navigate"
|
65
|
+
data-force-navigation="true"
|
66
|
+
href="$link#link-$i-with-hash"
|
67
|
+
>link $i with hash</a>
|
58
68
|
HTML;
|
69
|
+
}
|
59
70
|
}
|
60
|
-
|
61
|
-
|
71
|
+
?>
|
72
|
+
</nav>
|
73
|
+
<div data-testid="getterProp" data-wp-text="state.data.getterProp"></div>
|
74
|
+
<div data-testid="prop1" data-wp-text="state.data.prop1"></div>
|
75
|
+
<div data-testid="prop2" data-wp-text="state.data.prop2"></div>
|
76
|
+
<div data-testid="prop3" data-wp-text="state.data.prop3"></div>
|
62
77
|
</div>
|
@@ -6,14 +6,23 @@ import { store } from '@wordpress/interactivity';
|
|
6
6
|
const { state } = store( 'router', {
|
7
7
|
state: {
|
8
8
|
status: 'idle',
|
9
|
-
navigations:
|
9
|
+
navigations: {
|
10
|
+
pending: 0,
|
11
|
+
count: 0,
|
12
|
+
},
|
10
13
|
timeout: 10000,
|
14
|
+
data: {
|
15
|
+
get getterProp() {
|
16
|
+
return `value from getter (${ state.data.prop1 })`;
|
17
|
+
}
|
18
|
+
}
|
11
19
|
},
|
12
20
|
actions: {
|
13
21
|
*navigate( e ) {
|
14
22
|
e.preventDefault();
|
15
23
|
|
16
|
-
state.navigations += 1;
|
24
|
+
state.navigations.count += 1;
|
25
|
+
state.navigations.pending += 1;
|
17
26
|
state.status = 'busy';
|
18
27
|
|
19
28
|
const force = e.target.dataset.forceNavigation === 'true';
|
@@ -24,9 +33,9 @@ const { state } = store( 'router', {
|
|
24
33
|
);
|
25
34
|
yield actions.navigate( e.target.href, { force, timeout } );
|
26
35
|
|
27
|
-
state.navigations -= 1;
|
36
|
+
state.navigations.pending -= 1;
|
28
37
|
|
29
|
-
if ( state.navigations === 0 ) {
|
38
|
+
if ( state.navigations.pending === 0 ) {
|
30
39
|
state.status = 'idle';
|
31
40
|
}
|
32
41
|
},
|
@@ -1,14 +1,13 @@
|
|
1
1
|
<?php
|
2
2
|
/**
|
3
|
-
* HTML for testing the
|
3
|
+
* HTML for testing the `store` function.
|
4
4
|
*
|
5
5
|
* @package gutenberg-test-interactive-blocks
|
6
6
|
*/
|
7
|
-
|
8
|
-
wp_enqueue_script_module( 'store-view' );
|
9
7
|
?>
|
10
8
|
|
11
9
|
<div data-wp-interactive="test/store">
|
10
|
+
<div data-wp-text="state.0" data-testid="state-0"></div>
|
12
11
|
<div
|
13
12
|
data-testid="non-plain object"
|
14
13
|
data-wp-text="state.isNotProxified"
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -3,18 +3,21 @@
|
|
3
3
|
*/
|
4
4
|
import { store, getElement } from '@wordpress/interactivity';
|
5
5
|
|
6
|
+
// A non-object state should never be allowed.
|
7
|
+
store( 'test/store', { state: [ 'wrong' ] } );
|
6
8
|
|
7
9
|
const { state } = store( 'test/store', {
|
8
10
|
state: {
|
11
|
+
0: 'right',
|
9
12
|
get isNotProxified() {
|
10
13
|
const { ref } = getElement();
|
11
14
|
return state.elementRef === ref;
|
12
|
-
}
|
15
|
+
},
|
13
16
|
},
|
14
17
|
callbacks: {
|
15
18
|
init() {
|
16
19
|
const { ref } = getElement();
|
17
20
|
state.elementRef = ref; // HTMLElement
|
18
|
-
}
|
19
|
-
}
|
20
|
-
} )
|
21
|
+
},
|
22
|
+
},
|
23
|
+
} );
|
@@ -7,8 +7,6 @@
|
|
7
7
|
* @phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
|
8
8
|
*/
|
9
9
|
|
10
|
-
wp_enqueue_script_module( 'store-tag-view' );
|
11
|
-
|
12
10
|
// These variables simulates SSR.
|
13
11
|
$test_store_tag_counter = 'ok' === $attributes['condition'] ? 3 : 0;
|
14
12
|
$test_store_tag_double = $test_store_tag_counter * 2;
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -4,8 +4,6 @@
|
|
4
4
|
*
|
5
5
|
* @package gutenberg-test-interactive-blocks
|
6
6
|
*/
|
7
|
-
|
8
|
-
wp_enqueue_script_module( 'with-scope-view' );
|
9
7
|
?>
|
10
8
|
|
11
9
|
<div data-wp-interactive="with-scope" data-wp-context='{"asyncCounter": 0, "syncCounter": 0}' data-wp-init--a='callbacks.asyncInit' data-wp-init--b='callbacks.syncInit'>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -15,26 +15,8 @@ add_action(
|
|
15
15
|
$block_json_files = glob( __DIR__ . '/interactive-blocks/**/block.json' );
|
16
16
|
|
17
17
|
// Auto register all blocks that were found.
|
18
|
-
foreach ( $block_json_files as $
|
19
|
-
|
20
|
-
$name = basename( $block_folder );
|
21
|
-
|
22
|
-
$view_file = plugin_dir_url( $block_folder ) . $name . '/' . 'view.js';
|
23
|
-
|
24
|
-
wp_register_script_module(
|
25
|
-
$name . '-view',
|
26
|
-
$view_file,
|
27
|
-
array(
|
28
|
-
'@wordpress/interactivity',
|
29
|
-
array(
|
30
|
-
'id' => '@wordpress/interactivity-router',
|
31
|
-
'import' => 'dynamic',
|
32
|
-
),
|
33
|
-
),
|
34
|
-
filemtime( $view_file )
|
35
|
-
);
|
36
|
-
|
37
|
-
register_block_type_from_metadata( $block_folder );
|
18
|
+
foreach ( $block_json_files as $block_json_file ) {
|
19
|
+
register_block_type( $block_json_file );
|
38
20
|
}
|
39
21
|
}
|
40
22
|
|
@@ -49,7 +31,8 @@ add_action(
|
|
49
31
|
// But remove the server directive processing.
|
50
32
|
remove_filter(
|
51
33
|
'render_block_data',
|
52
|
-
'wp_interactivity_process_directives_of_interactive_blocks'
|
34
|
+
'wp_interactivity_process_directives_of_interactive_blocks',
|
35
|
+
100
|
53
36
|
);
|
54
37
|
}
|
55
38
|
}
|