@wordpress/e2e-tests 7.20.0 → 7.21.1

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/package.json +9 -8
  3. package/plugins/interactive-blocks/directive-bind/render.php +1 -1
  4. package/plugins/interactive-blocks/directive-body/render.php +1 -1
  5. package/plugins/interactive-blocks/directive-class/render.php +1 -1
  6. package/plugins/interactive-blocks/directive-context/render.php +2 -2
  7. package/plugins/interactive-blocks/directive-context/view.js +10 -6
  8. package/plugins/interactive-blocks/{directive-slots → directive-each}/block.json +3 -3
  9. package/plugins/interactive-blocks/directive-each/render.php +226 -0
  10. package/plugins/interactive-blocks/directive-each/view.js +192 -0
  11. package/plugins/interactive-blocks/directive-init/render.php +1 -1
  12. package/plugins/interactive-blocks/directive-key/render.php +2 -2
  13. package/plugins/interactive-blocks/directive-key/view.js +7 -4
  14. package/plugins/interactive-blocks/directive-on/render.php +1 -1
  15. package/plugins/interactive-blocks/directive-on-document/block.json +15 -0
  16. package/plugins/interactive-blocks/directive-on-document/render.php +29 -0
  17. package/plugins/interactive-blocks/directive-on-document/view.js +39 -0
  18. package/plugins/interactive-blocks/directive-on-window/block.json +15 -0
  19. package/plugins/interactive-blocks/directive-on-window/render.php +26 -0
  20. package/plugins/interactive-blocks/directive-on-window/view.js +39 -0
  21. package/plugins/interactive-blocks/directive-priorities/render.php +1 -1
  22. package/plugins/interactive-blocks/directive-run/block.json +15 -0
  23. package/plugins/interactive-blocks/directive-run/render.php +54 -0
  24. package/plugins/interactive-blocks/directive-run/view.js +110 -0
  25. package/plugins/interactive-blocks/directive-style/render.php +1 -1
  26. package/plugins/interactive-blocks/directive-text/render.php +15 -1
  27. package/plugins/interactive-blocks/directive-text/view.js +4 -1
  28. package/plugins/interactive-blocks/directive-watch/render.php +1 -1
  29. package/plugins/interactive-blocks/negation-operator/render.php +1 -1
  30. package/plugins/interactive-blocks/router-navigate/render.php +2 -2
  31. package/plugins/interactive-blocks/router-navigate/view.js +5 -2
  32. package/plugins/interactive-blocks/router-regions/render.php +4 -4
  33. package/plugins/interactive-blocks/router-regions/view.js +5 -2
  34. package/plugins/interactive-blocks/store-tag/render.php +3 -3
  35. package/plugins/interactive-blocks/tovdom/render.php +1 -1
  36. package/plugins/interactive-blocks/tovdom-islands/render.php +1 -1
  37. package/plugins/interactive-blocks/with-scope/block.json +15 -0
  38. package/plugins/interactive-blocks/with-scope/render.php +14 -0
  39. package/plugins/interactive-blocks/with-scope/view.js +20 -0
  40. package/plugins/interactive-blocks.php +19 -10
  41. package/specs/editor/various/__snapshots__/pattern-blocks.test.js.snap +0 -6
  42. package/specs/editor/various/pattern-blocks.test.js +8 -117
  43. package/plugins/dataviews.php +0 -25
  44. package/plugins/interactive-blocks/directive-slots/render.php +0 -69
  45. package/plugins/interactive-blocks/directive-slots/view.js +0 -20
  46. package/specs/editor/fixtures/menu-items-request-fixture.json +0 -84
  47. package/specs/editor/fixtures/menu-items-response-fixture.json +0 -1261
  48. package/specs/editor/various/__snapshots__/block-grouping.test.js.snap +0 -115
  49. package/specs/editor/various/__snapshots__/embedding.test.js.snap +0 -67
  50. package/specs/editor/various/block-grouping.test.js +0 -283
  51. package/specs/editor/various/embedding.test.js +0 -303
  52. package/specs/editor/various/typewriter.test.js +0 -260
@@ -15,42 +15,16 @@ import {
15
15
  openDocumentSettingsSidebar,
16
16
  saveDraft,
17
17
  createReusableBlock,
18
- publishPost,
19
18
  canvas,
20
19
  } from '@wordpress/e2e-test-utils';
21
20
 
22
21
  const patternBlockNameInputSelector =
23
22
  '.patterns-menu-items__convert-modal .components-text-control__input';
24
- const patternBlockInspectorNameInputSelector =
25
- '.block-editor-block-inspector .components-text-control__input';
23
+ const patternBlockInspectorNameSelector =
24
+ '.block-editor-block-inspector h2.block-editor-block-card__title';
26
25
  const syncToggleSelectorChecked =
27
26
  '.patterns-menu-items__convert-modal .components-form-toggle.is-checked';
28
27
 
29
- const saveAll = async () => {
30
- const publishButtonSelector =
31
- '.editor-post-publish-button__button.has-changes-dot';
32
- // Wait for the Publish button to become enabled in case the editor is autosaving ATM:.
33
- const publishButton = await page.waitForSelector(
34
- publishButtonSelector + '[aria-disabled="false"]'
35
- );
36
- await publishButton.click();
37
-
38
- const saveButtonSelector =
39
- 'button.editor-entities-saved-states__save-button';
40
- const saveButton = await page.waitForSelector( saveButtonSelector );
41
- await saveButton.click();
42
- };
43
-
44
- const saveAllButDontPublish = async () => {
45
- await saveAll();
46
-
47
- // No need to publish the post.
48
- const cancelPublish = await page.waitForSelector(
49
- '.editor-post-publish-panel__header-cancel-button button'
50
- );
51
- await cancelPublish.click();
52
- };
53
-
54
28
  const clearAllBlocks = async () => {
55
29
  // Remove all blocks from the post so that we're working with a clean slate.
56
30
  await page.evaluate( () => {
@@ -69,46 +43,24 @@ describe( 'Pattern blocks', () => {
69
43
  await createNewPost();
70
44
  } );
71
45
 
72
- it( 'can be created, inserted, edited and converted to a regular block.', async () => {
46
+ it( 'can be created, inserted, and converted to a regular block.', async () => {
73
47
  await createReusableBlock( 'Hello there!', 'Greeting block' );
74
48
  await clearAllBlocks();
75
49
 
76
50
  // Insert the reusable block we created above.
77
51
  await insertPattern( 'Greeting block' );
78
52
 
79
- // Change the block's title.
80
- await openDocumentSettingsSidebar();
81
- const nameInput = await page.waitForSelector(
82
- patternBlockInspectorNameInputSelector
83
- );
84
- await nameInput.click();
85
- await pressKeyWithModifier( 'primary', 'a' );
86
- await page.keyboard.type( 'Surprised greeting block' );
87
-
88
- // Quickly focus the paragraph block.
89
- await canvas().click(
90
- '.block-editor-block-list__block[data-type="core/block"] p'
91
- );
92
- await page.keyboard.press( 'Escape' ); // Enter navigation mode.
93
- await page.keyboard.press( 'Enter' ); // Enter edit mode.
94
-
95
- // Change the block's content.
96
- await page.keyboard.type( 'Oh! ' );
97
-
98
- // Save the reusable block.
99
- await saveAllButDontPublish();
100
-
101
53
  // Check that its content is up to date.
102
54
  const text = await canvas().$eval(
103
55
  '.block-editor-block-list__block[data-type="core/block"] p',
104
56
  ( element ) => element.innerText
105
57
  );
106
- expect( text ).toMatch( 'Oh! Hello there!' );
58
+ expect( text ).toMatch( 'Hello there!' );
107
59
 
108
60
  await clearAllBlocks();
109
61
 
110
62
  // Insert the reusable block we edited above.
111
- await insertPattern( 'Surprised greeting block' );
63
+ await insertPattern( 'Greeting block' );
112
64
 
113
65
  // Convert block to a regular block.
114
66
  await clickBlockToolbarButton( 'Options' );
@@ -125,42 +77,7 @@ describe( 'Pattern blocks', () => {
125
77
  '.block-editor-block-list__block[data-type="core/paragraph"]',
126
78
  ( element ) => element.innerText
127
79
  );
128
- expect( paragraphContent ).toMatch( 'Oh! Hello there!' );
129
- } );
130
-
131
- // Check for regressions of https://github.com/WordPress/gutenberg/issues/33072.
132
- it( 'can be saved when modified inside of a published post', async () => {
133
- await createReusableBlock(
134
- 'Guten Berg!',
135
- 'Alternative greeting block'
136
- );
137
-
138
- // Make sure the reusable block has loaded properly before attempting to publish the post.
139
- await canvas().waitForSelector( 'p[aria-label="Block: Paragraph"]' );
140
-
141
- await publishPost();
142
-
143
- // Close publish panel.
144
- const closePublishPanelSelector =
145
- '.editor-post-publish-panel__header button[aria-label="Close panel"]';
146
- await page.waitForSelector( closePublishPanelSelector );
147
- await page.click( closePublishPanelSelector );
148
-
149
- await canvas().waitForSelector( 'p[aria-label="Block: Paragraph"]' );
150
- await canvas().focus( 'p[aria-label="Block: Paragraph"]' );
151
-
152
- // Change the block's content.
153
- await page.keyboard.type( 'Einen ' );
154
-
155
- // Save the reusable block and update the post.
156
- await saveAll();
157
-
158
- // Check that its content is up to date.
159
- const paragraphContent = await canvas().$eval(
160
- 'p[aria-label="Block: Paragraph"]',
161
- ( element ) => element.innerText
162
- );
163
- expect( paragraphContent ).toMatch( 'Einen Guten Berg!' );
80
+ expect( paragraphContent ).toMatch( 'Hello there!' );
164
81
  } );
165
82
 
166
83
  it( 'can be inserted after refresh', async () => {
@@ -175,8 +92,8 @@ describe( 'Pattern blocks', () => {
175
92
  // Check the title.
176
93
  await openDocumentSettingsSidebar();
177
94
  const title = await page.$eval(
178
- patternBlockInspectorNameInputSelector,
179
- ( element ) => element.value
95
+ patternBlockInspectorNameSelector,
96
+ ( element ) => element.textContent
180
97
  );
181
98
  expect( title ).toBe( 'Awesome block' );
182
99
  } );
@@ -335,32 +252,6 @@ describe( 'Pattern blocks', () => {
335
252
  );
336
253
  } );
337
254
 
338
- // Check for regressions of https://github.com/WordPress/gutenberg/issues/26421.
339
- it( 'allows conversion back to blocks when the reusable block has unsaved edits', async () => {
340
- await createReusableBlock( '1', 'Edited block' );
341
-
342
- // Make an edit to the reusable block and assert that there's only a
343
- // paragraph in a reusable block.
344
- await canvas().waitForSelector( 'p[aria-label="Block: Paragraph"]' );
345
- await canvas().click( 'p[aria-label="Block: Paragraph"]' );
346
- await page.keyboard.type( '2' );
347
- const selector =
348
- '//div[@aria-label="Block: Pattern"]//p[@aria-label="Block: Paragraph"][.="12"]';
349
- const reusableBlockWithParagraph = await page.$x( selector );
350
- expect( reusableBlockWithParagraph ).toBeTruthy();
351
-
352
- // Convert back to regular blocks.
353
- await clickBlockToolbarButton( 'Select parent block: Edited block' );
354
- await clickBlockToolbarButton( 'Options' );
355
- await clickMenuItem( 'Detach' );
356
- await page.waitForXPath( selector, {
357
- hidden: true,
358
- } );
359
-
360
- // Check that there's only a paragraph.
361
- expect( await getEditedPostContent() ).toMatchSnapshot();
362
- } );
363
-
364
255
  // Test for regressions of https://github.com/WordPress/gutenberg/issues/27243.
365
256
  it( 'should allow a block with styles to be converted to a reusable block', async () => {
366
257
  // Insert a quote and reload the page.
@@ -1,25 +0,0 @@
1
- <?php
2
- /**
3
- * Plugin Name: Gutenberg Test DataViews
4
- * Plugin URI: https://github.com/WordPress/gutenberg
5
- * Author: Gutenberg Team
6
- *
7
- * @package gutenberg-test-dataviews
8
- */
9
-
10
- /**
11
- * Disables the DataViews experiment on plugin deactivation.
12
- */
13
- function disable_dataviews_experiment() {
14
- update_option( 'gutenberg-experiments', array() );
15
- }
16
-
17
- /**
18
- * Enables the DataViews experiment.
19
- */
20
- function enable_dataviews_experiment() {
21
- update_option( 'gutenberg-experiments', array( 'gutenberg-dataviews' => true ) );
22
- register_deactivation_hook( __FILE__, 'disable_dataviews_experiment' );
23
- }
24
-
25
- add_action( 'init', 'enable_dataviews_experiment' );
@@ -1,69 +0,0 @@
1
- <?php
2
- /**
3
- * HTML for testing the directive `data-wp-bind`.
4
- *
5
- * @package gutenberg-test-interactive-blocks
6
- */
7
-
8
- gutenberg_enqueue_module( 'directive-slots-view' );
9
- ?>
10
-
11
- <div
12
- data-wp-interactive='{ "namespace": "directive-slots" }'
13
- data-wp-slot-provider
14
- data-wp-context='{ "text": "fill" }'
15
- >
16
- <div data-testid="slots" data-wp-context='{ "text": "fill inside slots" }'>
17
- <div
18
- data-testid="slot-1"
19
- data-wp-key="slot-1"
20
- data-wp-slot="slot-1"
21
- data-wp-context='{ "text": "fill inside slot 1" }'
22
- >[1]</div>
23
- <div
24
- data-testid="slot-2"
25
- data-wp-key="slot-2"
26
- data-wp-slot='{ "name": "slot-2", "position": "before" }'
27
- data-wp-context='{ "text": "[2]" }'
28
- data-wp-text='context.text'
29
- data-wp-on--click="actions.updateSlotText"
30
- >[2]</div>
31
- <div
32
- data-testid="slot-3"
33
- data-wp-key="slot-3"
34
- data-wp-slot='{ "name": "slot-3", "position": "after" }'
35
- data-wp-context='{ "text": "[3]" }'
36
- data-wp-text='context.text'
37
- data-wp-on--click="actions.updateSlotText"
38
- >[3]</div>
39
- <div
40
- data-testid="slot-4"
41
- data-wp-key="slot-4"
42
- data-wp-slot='{ "name": "slot-4", "position": "children" }'
43
- data-wp-context='{ "text": "fill inside slot 4" }'
44
- >[4]</div>
45
- <div
46
- data-testid="slot-5"
47
- data-wp-key="slot-5"
48
- data-wp-slot='{ "name": "slot-5", "position": "replace" }'
49
- data-wp-context='{ "text": "fill inside slot 5" }'
50
- >[5]</div>
51
- </div>
52
-
53
- <div data-testid="fill-container">
54
- <span
55
- data-testid="fill"
56
- data-wp-fill="state.slot"
57
- data-wp-text="context.text"
58
- >initial</span>
59
- </div>
60
-
61
- <div data-wp-on--click="actions.changeSlot">
62
- <button data-testid="slot-1-button" data-slot="slot-1">slot-1</button>
63
- <button data-testid="slot-2-button" data-slot="slot-2">slot-2</button>
64
- <button data-testid="slot-3-button" data-slot="slot-3">slot-3</button>
65
- <button data-testid="slot-4-button" data-slot="slot-4">slot-4</button>
66
- <button data-testid="slot-5-button" data-slot="slot-5">slot-5</button>
67
- <button data-testid="reset" data-slot="">reset</button>
68
- </div>
69
- </div>
@@ -1,20 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { store, getContext } from '@wordpress/interactivity';
5
-
6
- const { state } = store( 'directive-slots', {
7
- state: {
8
- slot: '',
9
- },
10
- actions: {
11
- changeSlot( event ) {
12
- state.slot = event.target.dataset.slot;
13
- },
14
- updateSlotText() {
15
- const context = getContext();
16
- const n = context.text[ 1 ];
17
- context.text = `[${ n } updated]`;
18
- },
19
- },
20
- } );
@@ -1,84 +0,0 @@
1
- [
2
- {
3
- "title": "Home",
4
- "url": "http://localhost:8889/",
5
- "menu_order": 1
6
- },
7
- {
8
- "title": "About",
9
- "type": "post_type",
10
- "object": "page",
11
- "menu_order": 2
12
- },
13
- {
14
- "title": "Our team",
15
- "type": "post_type",
16
- "object": "page",
17
- "menu_order": 3,
18
- "parent": 1
19
- },
20
- {
21
- "title": "Shop",
22
- "type": "post_type",
23
- "object": "page",
24
- "menu_order": 4
25
- },
26
- {
27
- "title": "Winter apparel",
28
- "type": "post_type",
29
- "object": "page",
30
- "menu_order": 5,
31
- "parent": 3
32
- },
33
- {
34
- "title": "Chunky socks",
35
- "type": "post_type",
36
- "object": "page",
37
- "menu_order": 6,
38
- "parent": 4
39
- },
40
- {
41
- "title": "Hideous hats",
42
- "type": "post_type",
43
- "object": "page",
44
- "menu_order": 7,
45
- "parent": 4
46
- },
47
- {
48
- "title": "Glorious gloves",
49
- "type": "post_type",
50
- "object": "page",
51
- "menu_order": 8,
52
- "parent": 4
53
- },
54
- {
55
- "title": "Jazzy Jumpers",
56
- "type": "post_type",
57
- "object": "page",
58
- "menu_order": 9,
59
- "parent": 4
60
- },
61
- {
62
- "title": "Shipping",
63
- "type": "post_type",
64
- "object": "page",
65
- "menu_order": 10
66
- },
67
- {
68
- "title": "Contact Us",
69
- "type": "post_type",
70
- "object": "page",
71
- "menu_order": 11
72
- },
73
- {
74
- "title": "WordPress.org",
75
- "url": "https://wordpress.org",
76
- "menu_order": 12
77
- },
78
- {
79
- "title": "Google",
80
- "url": "https://google.com",
81
- "menu_order": 13,
82
- "parent": 11
83
- }
84
- ]