@wordpress/e2e-tests 3.0.7 → 3.0.10-next.a55ed9455a.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.
Files changed (74) hide show
  1. package/config/setup-performance-test.js +1 -1
  2. package/config/setup-test-framework.js +1 -1
  3. package/package.json +7 -7
  4. package/specs/editor/blocks/__snapshots__/heading.test.js.snap +8 -8
  5. package/specs/editor/blocks/__snapshots__/navigation.test.js.snap +16 -16
  6. package/specs/editor/blocks/__snapshots__/quote.test.js.snap +10 -10
  7. package/specs/editor/blocks/classic.test.js +2 -2
  8. package/specs/editor/blocks/cover.test.js +17 -17
  9. package/specs/editor/blocks/image.test.js +4 -3
  10. package/specs/editor/blocks/list.test.js +1 -1
  11. package/specs/editor/blocks/navigation.test.js +392 -65
  12. package/specs/editor/blocks/table.test.js +1 -1
  13. package/specs/editor/plugins/align-hook.test.js +10 -10
  14. package/specs/editor/plugins/block-context.test.js +1 -1
  15. package/specs/editor/plugins/block-directory-add.test.js +14 -14
  16. package/specs/editor/plugins/custom-post-types.test.js +1 -1
  17. package/specs/editor/plugins/custom-taxonomies.test.js +3 -3
  18. package/specs/editor/plugins/meta-attribute-block.test.js +1 -1
  19. package/specs/editor/plugins/meta-boxes.test.js +3 -3
  20. package/specs/editor/plugins/templates.test.js +1 -1
  21. package/specs/editor/plugins/wp-editor-meta-box.test.js +1 -1
  22. package/specs/editor/various/__snapshots__/block-grouping.test.js.snap +4 -4
  23. package/specs/editor/various/__snapshots__/inserting-blocks.test.js.snap +2 -2
  24. package/specs/editor/various/__snapshots__/keep-styles-on-block-transforms.test.js.snap +3 -3
  25. package/specs/editor/various/autosave.test.js +19 -19
  26. package/specs/editor/various/block-deletion.test.js +5 -5
  27. package/specs/editor/various/block-grouping.test.js +29 -12
  28. package/specs/editor/various/block-hierarchy-navigation.test.js +5 -5
  29. package/specs/editor/various/change-detection.test.js +3 -3
  30. package/specs/editor/various/compatibility-classic-editor.test.js +1 -1
  31. package/specs/editor/various/copy-cut-paste-whole-blocks.test.js +7 -7
  32. package/specs/editor/various/datepicker.test.js +1 -1
  33. package/specs/editor/various/duplicating-blocks.test.js +3 -3
  34. package/specs/editor/various/editor-modes.test.js +5 -5
  35. package/specs/editor/various/inserting-blocks.test.js +6 -6
  36. package/specs/editor/various/invalid-block.test.js +4 -4
  37. package/specs/editor/various/is-typing.test.js +8 -8
  38. package/specs/editor/various/keyboard-navigable-blocks.test.js +2 -2
  39. package/specs/editor/various/links.test.js +90 -90
  40. package/specs/editor/various/list-view.test.js +142 -1
  41. package/specs/editor/various/manage-reusable-blocks.test.js +5 -5
  42. package/specs/editor/various/multi-block-selection.test.js +86 -2
  43. package/specs/editor/various/navigable-toolbar.test.js +1 -1
  44. package/specs/editor/various/new-post-default-content.test.js +2 -2
  45. package/specs/editor/various/new-post.test.js +1 -1
  46. package/specs/editor/various/nux.test.js +11 -11
  47. package/specs/editor/various/popovers.test.js +3 -3
  48. package/specs/editor/various/post-editor-template-mode.test.js +189 -11
  49. package/specs/editor/various/post-visibility.test.js +1 -1
  50. package/specs/editor/various/preferences.test.js +1 -1
  51. package/specs/editor/various/preview.test.js +8 -4
  52. package/specs/editor/various/publish-button.test.js +2 -2
  53. package/specs/editor/various/publishing.test.js +50 -1
  54. package/specs/editor/various/reusable-blocks.test.js +31 -31
  55. package/specs/editor/various/rich-text.test.js +1 -1
  56. package/specs/editor/various/splitting-merging.test.js +6 -6
  57. package/specs/editor/various/style-variation.test.js +2 -2
  58. package/specs/editor/various/switch-to-draft.test.js +256 -0
  59. package/specs/editor/various/taxonomies.test.js +1 -1
  60. package/specs/editor/various/toolbar-roving-tabindex.test.js +1 -1
  61. package/specs/editor/various/writing-flow.test.js +85 -20
  62. package/specs/experiments/navigation-editor.test.js +168 -3
  63. package/specs/performance/post-editor.test.js +7 -7
  64. package/specs/performance/site-editor.test.js +6 -7
  65. package/specs/site-editor/document-settings.test.js +8 -8
  66. package/specs/site-editor/multi-entity-editing.test.js +6 -6
  67. package/specs/site-editor/multi-entity-saving.test.js +5 -4
  68. package/specs/site-editor/settings-sidebar.test.js +5 -5
  69. package/specs/site-editor/site-editor-export.test.js +3 -3
  70. package/specs/site-editor/site-editor-inserter.test.js +3 -3
  71. package/specs/site-editor/template-part.test.js +27 -26
  72. package/specs/site-editor/template-revert.test.js +12 -22
  73. package/specs/widgets/customizing-widgets.test.js +14 -9
  74. package/specs/widgets/editing-widgets.test.js +8 -7
@@ -2,7 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import {
5
- trashAllPosts,
5
+ deleteAllTemplates,
6
6
  activateTheme,
7
7
  visitSiteEditor,
8
8
  } from '@wordpress/e2e-test-utils';
@@ -10,8 +10,8 @@ import {
10
10
  describe( 'Site Editor Inserter', () => {
11
11
  beforeAll( async () => {
12
12
  await activateTheme( 'emptytheme' );
13
- await trashAllPosts( 'wp_template' );
14
- await trashAllPosts( 'wp_template_part' );
13
+ await deleteAllTemplates( 'wp_template' );
14
+ await deleteAllTemplates( 'wp_template_part' );
15
15
  } );
16
16
  afterAll( async () => {
17
17
  await activateTheme( 'twentytwentyone' );
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import {
5
5
  insertBlock,
6
- trashAllPosts,
6
+ deleteAllTemplates,
7
7
  activateTheme,
8
8
  getAllBlocks,
9
9
  selectBlockByClientId,
@@ -18,12 +18,12 @@ const templatePartNameInput =
18
18
  describe( 'Template Part', () => {
19
19
  beforeAll( async () => {
20
20
  await activateTheme( 'emptytheme' );
21
- await trashAllPosts( 'wp_template' );
22
- await trashAllPosts( 'wp_template_part' );
21
+ await deleteAllTemplates( 'wp_template' );
22
+ await deleteAllTemplates( 'wp_template_part' );
23
23
  } );
24
24
  afterAll( async () => {
25
- await trashAllPosts( 'wp_template' );
26
- await trashAllPosts( 'wp_template_part' );
25
+ await deleteAllTemplates( 'wp_template' );
26
+ await deleteAllTemplates( 'wp_template_part' );
27
27
  await activateTheme( 'twentytwentyone' );
28
28
  } );
29
29
 
@@ -138,23 +138,23 @@ describe( 'Template Part', () => {
138
138
  await insertBlock( 'Paragraph' );
139
139
  await page.keyboard.type( 'Header Template Part 789' );
140
140
 
141
- // Select the paragraph block
141
+ // Select the paragraph block.
142
142
  const text = await canvas().waitForXPath(
143
143
  '//p[contains(text(), "Header Template Part 789")]'
144
144
  );
145
145
 
146
- // Highlight all the text in the paragraph block
146
+ // Highlight all the text in the paragraph block.
147
147
  await text.click( { clickCount: 3 } );
148
148
 
149
- // Click the convert to link toolbar button
149
+ // Click the convert to link toolbar button.
150
150
  await page.waitForSelector( 'button[aria-label="Link"]' );
151
151
  await page.click( 'button[aria-label="Link"]' );
152
152
 
153
- // Enter url for link
153
+ // Enter url for link.
154
154
  await page.keyboard.type( 'https://google.com' );
155
155
  await page.keyboard.press( 'Enter' );
156
156
 
157
- // Verify that there is no error
157
+ // Verify that there is no error.
158
158
  await canvas().click( 'p[data-type="core/paragraph"] a' );
159
159
  const expectedContent = await canvas().$x(
160
160
  '//p[contains(text(), "Header Template Part 789")]'
@@ -184,7 +184,7 @@ describe( 'Template Part', () => {
184
184
  await page.keyboard.type( 'My template part' );
185
185
  await page.keyboard.press( 'Enter' );
186
186
 
187
- // Wait for creation to finish
187
+ // Wait for creation to finish.
188
188
  await page.waitForXPath(
189
189
  '//*[contains(@class, "components-snackbar")]/*[text()="Template part created."]'
190
190
  );
@@ -233,7 +233,7 @@ describe( 'Template Part', () => {
233
233
  await page.keyboard.type( 'My multi template part' );
234
234
  await page.keyboard.press( 'Enter' );
235
235
 
236
- // Wait for creation to finish
236
+ // Wait for creation to finish.
237
237
  await page.waitForXPath(
238
238
  '//*[contains(@class, "components-snackbar")]/*[text()="Template part created."]'
239
239
  );
@@ -250,20 +250,21 @@ describe( 'Template Part', () => {
250
250
  finalTemplateParts.length - initialTemplateParts.length
251
251
  ).toBe( 1 );
252
252
  } );
253
+
253
254
  describe( 'Template part placeholder', () => {
254
255
  // Test constants for template part.
255
256
  const testContent = 'some words...';
256
257
 
257
- // Selectors
258
+ // Selectors.
258
259
  const entitiesSaveSelector =
259
260
  '.editor-entities-saved-states__save-button';
260
261
  const savePostSelector = '.edit-site-save-button__button';
261
262
  const templatePartSelector = '*[data-type="core/template-part"]';
262
263
  const activatedTemplatePartSelector = `${ templatePartSelector }.block-editor-block-list__layout`;
263
- const createNewButtonSelector =
264
- '//button[contains(text(), "New template part")]';
264
+ const startBlockButtonSelector =
265
+ '//button[contains(text(), "Start blank")]';
265
266
  const chooseExistingButtonSelector =
266
- '//button[contains(text(), "Choose existing")]';
267
+ '//button[contains(text(), "Choose")]';
267
268
  const confirmTitleButtonSelector =
268
269
  '.wp-block-template-part__placeholder-create-new__title-form .components-button.is-primary';
269
270
 
@@ -273,13 +274,10 @@ describe( 'Template Part', () => {
273
274
 
274
275
  // Create new template part.
275
276
  await insertBlock( 'Template Part' );
276
- await siteEditorCanvas.waitForXPath(
277
- chooseExistingButtonSelector
278
- );
279
- const [ createNewButton ] = await siteEditorCanvas.$x(
280
- createNewButtonSelector
277
+ const startBlankButton = await siteEditorCanvas.waitForXPath(
278
+ startBlockButtonSelector
281
279
  );
282
- await createNewButton.click();
280
+ await startBlankButton.click();
283
281
  const confirmTitleButton = await page.waitForSelector(
284
282
  confirmTitleButtonSelector
285
283
  );
@@ -318,13 +316,16 @@ describe( 'Template Part', () => {
318
316
  chooseExistingButtonSelector
319
317
  );
320
318
  await chooseExistingButton.click();
321
- await page.waitForSelector(
322
- '.wp-block-template-part__selection-preview-container'
323
- );
324
319
  const preview = await page.waitForSelector(
325
- '.wp-block-template-part__selection-preview-item[aria-label="Create New"]'
320
+ '.block-editor-block-patterns-list__item'
326
321
  );
327
322
  await preview.click();
323
+
324
+ // Wait for the template parts to load properly.
325
+ await siteEditorCanvas.waitForSelector(
326
+ '[data-type="core/template-part"] > p:first-child'
327
+ );
328
+
328
329
  // We now have the same template part two times in the page, so check accordingly.
329
330
  const paragraphs = await siteEditorCanvas.$$eval(
330
331
  '[data-type="core/template-part"] > p:first-child',
@@ -3,15 +3,11 @@
3
3
  */
4
4
  import {
5
5
  insertBlock,
6
- trashAllPosts,
7
6
  activateTheme,
8
- switchUserToAdmin,
9
- switchUserToTest,
10
- visitAdminPage,
7
+ deleteAllTemplates,
11
8
  visitSiteEditor,
12
9
  getCurrentSiteEditorContent,
13
10
  } from '@wordpress/e2e-test-utils';
14
- import { addQueryArgs } from '@wordpress/url';
15
11
 
16
12
  const assertSaveButtonIsDisabled = async () =>
17
13
  page.waitForSelector(
@@ -71,30 +67,19 @@ const revertTemplate = async () => {
71
67
  await assertSaveButtonIsEnabled();
72
68
  };
73
69
 
74
- const assertTemplatesAreDeleted = async () => {
75
- await switchUserToAdmin();
76
- const query = addQueryArgs( '', {
77
- post_type: 'wp_template',
78
- } ).slice( 1 );
79
- await visitAdminPage( 'edit.php', query );
80
- const element = await page.waitForSelector( '#the-list .no-items' );
81
- expect( element ).toBeTruthy();
82
- await switchUserToTest();
83
- };
84
-
85
70
  describe( 'Template Revert', () => {
86
71
  beforeAll( async () => {
87
72
  await activateTheme( 'emptytheme' );
88
- await trashAllPosts( 'wp_template' );
89
- await trashAllPosts( 'wp_template_part' );
73
+ await deleteAllTemplates( 'wp_template' );
74
+ await deleteAllTemplates( 'wp_template_part' );
90
75
  } );
91
76
  afterAll( async () => {
92
- await trashAllPosts( 'wp_template' );
93
- await trashAllPosts( 'wp_template_part' );
77
+ await deleteAllTemplates( 'wp_template' );
78
+ await deleteAllTemplates( 'wp_template_part' );
94
79
  await activateTheme( 'twentytwentyone' );
95
80
  } );
96
81
  beforeEach( async () => {
97
- await trashAllPosts( 'wp_template' );
82
+ await deleteAllTemplates( 'wp_template' );
98
83
  await visitSiteEditor();
99
84
  } );
100
85
 
@@ -104,7 +89,12 @@ describe( 'Template Revert', () => {
104
89
  await revertTemplate();
105
90
  await save();
106
91
 
107
- await assertTemplatesAreDeleted();
92
+ await page.click( '.edit-site-document-actions__get-info' );
93
+
94
+ // The revert button isn't visible anymore.
95
+ expect(
96
+ await page.$( '.edit-site-template-details__revert-button' )
97
+ ).toBeNull();
108
98
  } );
109
99
 
110
100
  it( 'should show the original content after revert', async () => {
@@ -25,16 +25,17 @@ describe( 'Widgets Customizer', () => {
25
25
  await visitAdminPage( 'customize.php' );
26
26
 
27
27
  // Disable welcome guide if it is enabled.
28
- const isWelcomeGuideActive = await page.evaluate( () =>
29
- wp.data
30
- .select( 'core/interface' )
31
- .isFeatureActive( 'core/customize-widgets', 'welcomeGuide' )
28
+ const isWelcomeGuideActive = await page.evaluate(
29
+ () =>
30
+ !! wp.data
31
+ .select( 'core/preferences' )
32
+ .get( 'core/customize-widgets', 'welcomeGuide' )
32
33
  );
33
34
  if ( isWelcomeGuideActive ) {
34
35
  await page.evaluate( () =>
35
36
  wp.data
36
- .dispatch( 'core/interface' )
37
- .toggleFeature( 'core/customize-widgets', 'welcomeGuide' )
37
+ .dispatch( 'core/preferences' )
38
+ .toggle( 'core/customize-widgets', 'welcomeGuide' )
38
39
  );
39
40
  }
40
41
  } );
@@ -784,7 +785,7 @@ describe( 'Widgets Customizer', () => {
784
785
 
785
786
  await waitForPreviewIframe();
786
787
 
787
- // Click Publish
788
+ // Click Publish.
788
789
  const publishButton = await find( {
789
790
  role: 'button',
790
791
  name: 'Publish',
@@ -797,7 +798,7 @@ describe( 'Widgets Customizer', () => {
797
798
  disabled: true,
798
799
  } );
799
800
 
800
- // Select the paragraph block
801
+ // Select the paragraph block.
801
802
  const paragraphBlock = await find( {
802
803
  role: 'document',
803
804
  name: 'Paragraph block',
@@ -824,7 +825,7 @@ describe( 'Widgets Customizer', () => {
824
825
 
825
826
  // Now that we've made a change:
826
827
  // (1) Publish button should be active
827
- // (2) We should still be in the "Block Settings" area
828
+ // (2) We should still be in the "Block Settings" area.
828
829
  await find( {
829
830
  role: 'button',
830
831
  name: 'Publish',
@@ -880,6 +881,10 @@ async function addBlock( blockName ) {
880
881
  }
881
882
  } );
882
883
 
884
+ // Click something so that the block toolbar, which sometimes obscures
885
+ // buttons in the inserter, goes away.
886
+ await searchBox.click();
887
+
883
888
  await searchBox.type( blockName );
884
889
 
885
890
  // TODO - remove this timeout when the test plugin for disabling CSS
@@ -31,16 +31,17 @@ describe( 'Widgets screen', () => {
31
31
  await visitWidgetsScreen();
32
32
 
33
33
  // Disable welcome guide if it is enabled.
34
- const isWelcomeGuideActive = await page.evaluate( () =>
35
- wp.data
36
- .select( 'core/interface' )
37
- .isFeatureActive( 'core/edit-widgets', 'welcomeGuide' )
34
+ const isWelcomeGuideActive = await page.evaluate(
35
+ () =>
36
+ !! wp.data
37
+ .select( 'core/preferences' )
38
+ .get( 'core/edit-widgets', 'welcomeGuide' )
38
39
  );
39
40
  if ( isWelcomeGuideActive ) {
40
41
  await page.evaluate( () =>
41
42
  wp.data
42
- .dispatch( 'core/interface' )
43
- .toggleFeature( 'core/edit-widgets', 'welcomeGuide' )
43
+ .dispatch( 'core/preferences' )
44
+ .toggle( 'core/edit-widgets', 'welcomeGuide' )
44
45
  );
45
46
  }
46
47
 
@@ -811,7 +812,7 @@ describe( 'Widgets screen', () => {
811
812
  // To do: clicking on the Snackbar causes focus loss.
812
813
  await page.focus( '.block-editor-writing-flow' );
813
814
 
814
- // Undo block deletion and save again
815
+ // Undo block deletion and save again.
815
816
  await pressKeyWithModifier( 'primary', 'z' );
816
817
  await saveWidgets();
817
818