@wordpress/e2e-test-utils-playwright 1.48.0 → 1.48.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 (188) hide show
  1. package/build/admin/create-new-post.js +31 -0
  2. package/build/admin/create-new-post.js.map +1 -0
  3. package/build/admin/edit-post.js +20 -0
  4. package/build/admin/edit-post.js.map +1 -0
  5. package/{src/admin/get-page-error.ts → build/admin/get-page-error.js} +9 -12
  6. package/build/admin/get-page-error.js.map +1 -0
  7. package/build/admin/index.js +40 -0
  8. package/build/admin/index.js.map +1 -0
  9. package/build/admin/visit-admin-page.js +32 -0
  10. package/build/admin/visit-admin-page.js.map +1 -0
  11. package/build/admin/visit-site-editor.js +45 -0
  12. package/build/admin/visit-site-editor.js.map +1 -0
  13. package/build/admin/wait-for-site-editor.js +41 -0
  14. package/build/admin/wait-for-site-editor.js.map +1 -0
  15. package/build/config.js +13 -0
  16. package/build/config.js.map +1 -0
  17. package/build/editor/click-block-options-menu-item.js +17 -0
  18. package/build/editor/click-block-options-menu-item.js.map +1 -0
  19. package/build/editor/click-block-toolbar-button.js +16 -0
  20. package/build/editor/click-block-toolbar-button.js.map +1 -0
  21. package/build/editor/get-blocks.js +45 -0
  22. package/build/editor/get-blocks.js.map +1 -0
  23. package/build/editor/get-edited-post-content.js +15 -0
  24. package/build/editor/get-edited-post-content.js.map +1 -0
  25. package/build/editor/index.js +75 -0
  26. package/build/editor/index.js.map +1 -0
  27. package/build/editor/insert-block.js +23 -0
  28. package/build/editor/insert-block.js.map +1 -0
  29. package/build/editor/open-document-settings-sidebar.js +27 -0
  30. package/build/editor/open-document-settings-sidebar.js.map +1 -0
  31. package/build/editor/preview.js +21 -0
  32. package/build/editor/preview.js.map +1 -0
  33. package/build/editor/publish-post.js +45 -0
  34. package/build/editor/publish-post.js.map +1 -0
  35. package/build/editor/save-draft.js +18 -0
  36. package/build/editor/save-draft.js.map +1 -0
  37. package/build/editor/select-blocks.js +28 -0
  38. package/build/editor/select-blocks.js.map +1 -0
  39. package/build/editor/set-content.js +17 -0
  40. package/build/editor/set-content.js.map +1 -0
  41. package/build/editor/set-is-fixed-toolbar.js +18 -0
  42. package/build/editor/set-is-fixed-toolbar.js.map +1 -0
  43. package/build/editor/set-preferences.js +21 -0
  44. package/build/editor/set-preferences.js.map +1 -0
  45. package/build/editor/show-block-toolbar.js +19 -0
  46. package/build/editor/show-block-toolbar.js.map +1 -0
  47. package/build/editor/site-editor.js +44 -0
  48. package/build/editor/site-editor.js.map +1 -0
  49. package/build/editor/switch-editor-tool.js +33 -0
  50. package/build/editor/switch-editor-tool.js.map +1 -0
  51. package/build/editor/switch-to-legacy-canvas.js +18 -0
  52. package/build/editor/switch-to-legacy-canvas.js.map +1 -0
  53. package/build/editor/transform-block-to.js +24 -0
  54. package/build/editor/transform-block-to.js.map +1 -0
  55. package/build/index.js +19 -0
  56. package/build/index.js.map +1 -0
  57. package/build/lighthouse/index.js +61 -0
  58. package/build/lighthouse/index.js.map +1 -0
  59. package/build/metrics/index.js +314 -0
  60. package/build/metrics/index.js.map +1 -0
  61. package/build/page-utils/drag-files.js +119 -0
  62. package/build/page-utils/drag-files.js.map +1 -0
  63. package/build/page-utils/emulate-network-conditions.js +71 -0
  64. package/build/page-utils/emulate-network-conditions.js.map +1 -0
  65. package/build/page-utils/index.js +37 -0
  66. package/build/page-utils/index.js.map +1 -0
  67. package/build/page-utils/is-current-url.js +21 -0
  68. package/build/page-utils/is-current-url.js.map +1 -0
  69. package/build/page-utils/keycodes.js +41 -0
  70. package/build/page-utils/keycodes.js.map +1 -0
  71. package/build/page-utils/press-keys.js +141 -0
  72. package/build/page-utils/press-keys.js.map +1 -0
  73. package/{src → build}/page-utils/set-browser-viewport.js +12 -14
  74. package/build/page-utils/set-browser-viewport.js.map +1 -0
  75. package/build/request-utils/blocks.js +40 -0
  76. package/build/request-utils/blocks.js.map +1 -0
  77. package/build/request-utils/comments.js +52 -0
  78. package/build/request-utils/comments.js.map +1 -0
  79. package/build/request-utils/gutenberg-experiments.js +47 -0
  80. package/build/request-utils/gutenberg-experiments.js.map +1 -0
  81. package/build/request-utils/index.js +196 -0
  82. package/build/request-utils/index.js.map +1 -0
  83. package/build/request-utils/login.js +21 -0
  84. package/build/request-utils/login.js.map +1 -0
  85. package/build/request-utils/media.js +106 -0
  86. package/build/request-utils/media.js.map +1 -0
  87. package/build/request-utils/menus.js +116 -0
  88. package/build/request-utils/menus.js.map +1 -0
  89. package/build/request-utils/pages.js +53 -0
  90. package/build/request-utils/pages.js.map +1 -0
  91. package/build/request-utils/patterns.js +27 -0
  92. package/build/request-utils/patterns.js.map +1 -0
  93. package/build/request-utils/plugins.js +85 -0
  94. package/build/request-utils/plugins.js.map +1 -0
  95. package/build/request-utils/posts.js +42 -0
  96. package/build/request-utils/posts.js.map +1 -0
  97. package/build/request-utils/preferences.js +54 -0
  98. package/build/request-utils/preferences.js.map +1 -0
  99. package/{src/request-utils/records.ts → build/request-utils/records.js} +10 -15
  100. package/build/request-utils/records.js.map +1 -0
  101. package/build/request-utils/rest.js +181 -0
  102. package/build/request-utils/rest.js.map +1 -0
  103. package/build/request-utils/site-settings.js +33 -0
  104. package/build/request-utils/site-settings.js.map +1 -0
  105. package/build/request-utils/templates.js +54 -0
  106. package/build/request-utils/templates.js.map +1 -0
  107. package/build/request-utils/themes.js +69 -0
  108. package/build/request-utils/themes.js.map +1 -0
  109. package/build/request-utils/users.js +81 -0
  110. package/build/request-utils/users.js.map +1 -0
  111. package/build/request-utils/widgets.js +61 -0
  112. package/build/request-utils/widgets.js.map +1 -0
  113. package/build/test.js +189 -0
  114. package/build/test.js.map +1 -0
  115. package/build/types.js +3 -0
  116. package/build/types.js.map +1 -0
  117. package/build-types/admin/index.d.ts.map +1 -1
  118. package/build-types/config.d.ts.map +1 -1
  119. package/build-types/editor/index.d.ts.map +1 -1
  120. package/build-types/lighthouse/index.d.ts.map +1 -1
  121. package/build-types/metrics/index.d.ts.map +1 -1
  122. package/build-types/page-utils/index.d.ts.map +1 -1
  123. package/build-types/page-utils/press-keys.d.ts +1 -1
  124. package/build-types/page-utils/set-browser-viewport.d.ts +22 -12
  125. package/build-types/page-utils/set-browser-viewport.d.ts.map +1 -1
  126. package/build-types/request-utils/index.d.ts +2 -2
  127. package/build-types/request-utils/index.d.ts.map +1 -1
  128. package/build-types/request-utils/pages.d.ts +1 -1
  129. package/build-types/request-utils/pages.d.ts.map +1 -1
  130. package/build-types/request-utils/widgets.d.ts +2 -2
  131. package/build-types/request-utils/widgets.d.ts.map +1 -1
  132. package/build-types/types.d.ts.map +1 -1
  133. package/package.json +8 -5
  134. package/src/admin/create-new-post.ts +0 -47
  135. package/src/admin/edit-post.ts +0 -24
  136. package/src/admin/index.ts +0 -52
  137. package/src/admin/visit-admin-page.ts +0 -43
  138. package/src/admin/visit-site-editor.ts +0 -62
  139. package/src/admin/wait-for-site-editor.ts +0 -52
  140. package/src/config.ts +0 -12
  141. package/src/editor/click-block-options-menu-item.ts +0 -18
  142. package/src/editor/click-block-toolbar-button.ts +0 -21
  143. package/src/editor/get-blocks.ts +0 -75
  144. package/src/editor/get-edited-post-content.ts +0 -19
  145. package/src/editor/index.ts +0 -95
  146. package/src/editor/insert-block.ts +0 -54
  147. package/src/editor/open-document-settings-sidebar.ts +0 -31
  148. package/src/editor/preview.ts +0 -32
  149. package/src/editor/publish-post.ts +0 -51
  150. package/src/editor/save-draft.ts +0 -20
  151. package/src/editor/select-blocks.ts +0 -48
  152. package/src/editor/set-content.ts +0 -24
  153. package/src/editor/set-is-fixed-toolbar.ts +0 -20
  154. package/src/editor/set-preferences.ts +0 -37
  155. package/src/editor/show-block-toolbar.ts +0 -20
  156. package/src/editor/site-editor.ts +0 -55
  157. package/src/editor/switch-editor-tool.ts +0 -34
  158. package/src/editor/switch-to-legacy-canvas.ts +0 -20
  159. package/src/editor/transform-block-to.ts +0 -34
  160. package/src/index.ts +0 -8
  161. package/src/lighthouse/index.ts +0 -75
  162. package/src/metrics/index.ts +0 -441
  163. package/src/page-utils/drag-files.ts +0 -173
  164. package/src/page-utils/emulate-network-conditions.ts +0 -101
  165. package/src/page-utils/index.ts +0 -54
  166. package/src/page-utils/is-current-url.ts +0 -20
  167. package/src/page-utils/keycodes.ts +0 -48
  168. package/src/page-utils/press-keys.ts +0 -195
  169. package/src/request-utils/blocks.ts +0 -58
  170. package/src/request-utils/comments.ts +0 -80
  171. package/src/request-utils/gutenberg-experiments.ts +0 -62
  172. package/src/request-utils/index.ts +0 -222
  173. package/src/request-utils/login.ts +0 -34
  174. package/src/request-utils/media.ts +0 -102
  175. package/src/request-utils/menus.ts +0 -145
  176. package/src/request-utils/pages.ts +0 -75
  177. package/src/request-utils/patterns.ts +0 -31
  178. package/src/request-utils/plugins.ts +0 -103
  179. package/src/request-utils/posts.ts +0 -69
  180. package/src/request-utils/preferences.ts +0 -63
  181. package/src/request-utils/rest.ts +0 -222
  182. package/src/request-utils/site-settings.ts +0 -58
  183. package/src/request-utils/templates.ts +0 -83
  184. package/src/request-utils/themes.ts +0 -110
  185. package/src/request-utils/users.ts +0 -125
  186. package/src/request-utils/widgets.js +0 -68
  187. package/src/test.ts +0 -204
  188. package/src/types.ts +0 -13
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNewPost = createNewPost;
4
+ /**
5
+ * Creates new post.
6
+ *
7
+ * @param this
8
+ * @param options Options to create new post.
9
+ */
10
+ async function createNewPost(options = {}) {
11
+ const query = new URLSearchParams();
12
+ const { postType, title, content, excerpt } = options;
13
+ if (postType) {
14
+ query.set('post_type', postType);
15
+ }
16
+ if (title) {
17
+ query.set('post_title', title);
18
+ }
19
+ if (content) {
20
+ query.set('content', content);
21
+ }
22
+ if (excerpt) {
23
+ query.set('excerpt', excerpt);
24
+ }
25
+ await this.visitAdminPage('post-new.php', query.toString());
26
+ await this.editor.setPreferences('core/edit-post', {
27
+ welcomeGuide: options.showWelcomeGuide ?? false,
28
+ fullscreenMode: options.fullscreenMode ?? false,
29
+ });
30
+ }
31
+ //# sourceMappingURL=create-new-post.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-new-post.js","sourceRoot":"","sources":["../../src/admin/create-new-post.ts"],"names":[],"mappings":";;AAoBA,sCA0BC;AAhCD;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CAElC,UAA0B,EAAE;IAE5B,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEtD,IAAK,QAAQ,EAAG,CAAC;QAChB,KAAK,CAAC,GAAG,CAAE,WAAW,EAAE,QAAQ,CAAE,CAAC;IACpC,CAAC;IACD,IAAK,KAAK,EAAG,CAAC;QACb,KAAK,CAAC,GAAG,CAAE,YAAY,EAAE,KAAK,CAAE,CAAC;IAClC,CAAC;IACD,IAAK,OAAO,EAAG,CAAC;QACf,KAAK,CAAC,GAAG,CAAE,SAAS,EAAE,OAAO,CAAE,CAAC;IACjC,CAAC;IACD,IAAK,OAAO,EAAG,CAAC;QACf,KAAK,CAAC,GAAG,CAAE,SAAS,EAAE,OAAO,CAAE,CAAC;IACjC,CAAC;IAED,MAAM,IAAI,CAAC,cAAc,CAAE,cAAc,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAE,CAAC;IAE9D,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAE,gBAAgB,EAAE;QACnD,YAAY,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;QAC/C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;KAC/C,CAAE,CAAC;AACL,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.editPost = editPost;
4
+ /**
5
+ * Open the post with given ID in the editor.
6
+ *
7
+ * @param this
8
+ * @param postId Post ID to visit.
9
+ */
10
+ async function editPost(postId) {
11
+ const query = new URLSearchParams();
12
+ query.set('post', String(postId));
13
+ query.set('action', 'edit');
14
+ await this.visitAdminPage('post.php', query.toString());
15
+ await this.editor.setPreferences('core/edit-post', {
16
+ welcomeGuide: false,
17
+ fullscreenMode: false,
18
+ });
19
+ }
20
+ //# sourceMappingURL=edit-post.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-post.js","sourceRoot":"","sources":["../../src/admin/edit-post.ts"],"names":[],"mappings":";;AAWA,4BAYC;AAlBD;;;;;GAKG;AACI,KAAK,UAAU,QAAQ,CAAe,MAAuB;IACnE,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAEpC,KAAK,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,CAAE,MAAM,CAAE,CAAE,CAAC;IACtC,KAAK,CAAC,GAAG,CAAE,QAAQ,EAAE,MAAM,CAAE,CAAC;IAE9B,MAAM,IAAI,CAAC,cAAc,CAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAE,CAAC;IAE1D,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAE,gBAAgB,EAAE;QACnD,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,KAAK;KACrB,CAAE,CAAC;AACL,CAAC"}
@@ -1,16 +1,12 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import type { Admin } from './';
5
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPageError = getPageError;
6
4
  /**
7
5
  * Regular expression matching a displayed PHP error within a markup string.
8
6
  *
9
7
  * @see https://github.com/php/php-src/blob/598175e/main/main.c#L1257-L1297
10
8
  */
11
- const REGEXP_PHP_ERROR =
12
- /(<b>)?(Fatal error|Recoverable fatal error|Warning|Parse error|Notice|Strict Standards|Deprecated|Unknown error)(<\/b>)?: (.*?) in (.*?) on line (<b>)?\d+(<\/b>)?/;
13
-
9
+ const REGEXP_PHP_ERROR = /(<b>)?(Fatal error|Recoverable fatal error|Warning|Parse error|Notice|Strict Standards|Deprecated|Unknown error)(<\/b>)?: (.*?) in (.*?) on line (<b>)?\d+(<\/b>)?/;
14
10
  /**
15
11
  * Returns a promise resolving to one of either a string or null. A string will
16
12
  * be resolved if an error message is present in the contents of the page. If no
@@ -22,8 +18,9 @@ const REGEXP_PHP_ERROR =
22
18
  * @param this
23
19
  * @return Promise resolving to a string or null, depending whether a page error is present.
24
20
  */
25
- export async function getPageError( this: Admin ) {
26
- const content = await this.page.content();
27
- const match = content.match( REGEXP_PHP_ERROR );
28
- return match ? match[ 0 ] : null;
21
+ async function getPageError() {
22
+ const content = await this.page.content();
23
+ const match = content.match(REGEXP_PHP_ERROR);
24
+ return match ? match[0] : null;
29
25
  }
26
+ //# sourceMappingURL=get-page-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-page-error.js","sourceRoot":"","sources":["../../src/admin/get-page-error.ts"],"names":[],"mappings":";;AAwBA,oCAIC;AAvBD;;;;GAIG;AACH,MAAM,gBAAgB,GACrB,oKAAoK,CAAC;AAEtK;;;;;;;;;;GAUG;AACI,KAAK,UAAU,YAAY;IACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAE,gBAAgB,CAAE,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Admin = void 0;
4
+ /**
5
+ * Internal dependencies
6
+ */
7
+ const create_new_post_1 = require("./create-new-post");
8
+ const get_page_error_1 = require("./get-page-error");
9
+ const visit_admin_page_1 = require("./visit-admin-page");
10
+ const edit_post_1 = require("./edit-post");
11
+ const visit_site_editor_1 = require("./visit-site-editor");
12
+ const wait_for_site_editor_1 = require("./wait-for-site-editor");
13
+ class Admin {
14
+ page;
15
+ context;
16
+ browser;
17
+ pageUtils;
18
+ editor;
19
+ constructor({ page, pageUtils, editor }) {
20
+ this.page = page;
21
+ this.context = page.context();
22
+ this.browser = this.context.browser();
23
+ this.pageUtils = pageUtils;
24
+ this.editor = editor;
25
+ }
26
+ /** @borrows createNewPost as this.createNewPost */
27
+ createNewPost = create_new_post_1.createNewPost.bind(this);
28
+ /** @borrows editPost as this.editPost */
29
+ editPost = edit_post_1.editPost.bind(this);
30
+ /** @borrows getPageError as this.getPageError */
31
+ getPageError = get_page_error_1.getPageError.bind(this);
32
+ /** @borrows visitAdminPage as this.visitAdminPage */
33
+ visitAdminPage = visit_admin_page_1.visitAdminPage.bind(this);
34
+ /** @borrows visitSiteEditor as this.visitSiteEditor */
35
+ visitSiteEditor = visit_site_editor_1.visitSiteEditor.bind(this);
36
+ /** @borrows waitForSiteEditor as this.waitForSiteEditor */
37
+ waitForSiteEditor = wait_for_site_editor_1.waitForSiteEditor.bind(this);
38
+ }
39
+ exports.Admin = Admin;
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":";;;AAKA;;GAEG;AACH,uDAAkD;AAClD,qDAAgD;AAChD,yDAAoD;AACpD,2CAAuC;AACvC,2DAAsD;AACtD,iEAA2D;AAU3D,MAAa,KAAK;IACjB,IAAI,CAAO;IACX,OAAO,CAAiB;IACxB,OAAO,CAAU;IACjB,SAAS,CAAY;IACrB,MAAM,CAAS;IAEf,YAAa,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAyB;QAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAG,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,mDAAmD;IACnD,aAAa,GAAyB,+BAAa,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACjE,yCAAyC;IACzC,QAAQ,GAAoB,oBAAQ,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAClD,iDAAiD;IACjD,YAAY,GAAwB,6BAAY,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC9D,qDAAqD;IACrD,cAAc,GAA0B,iCAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,uDAAuD;IACvD,eAAe,GAA2B,mCAAe,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACvE,2DAA2D;IAC3D,iBAAiB,GAChB,wCAAiB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;CAChC;AA5BD,sBA4BC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.visitAdminPage = visitAdminPage;
4
+ /**
5
+ * External dependencies
6
+ */
7
+ const path_1 = require("path");
8
+ /**
9
+ * Visits admin page and handle errors.
10
+ *
11
+ * @param this
12
+ * @param adminPath String to be serialized as pathname.
13
+ * @param query String to be serialized as query portion of URL.
14
+ */
15
+ async function visitAdminPage(adminPath, query) {
16
+ await this.page.goto((0, path_1.join)('wp-admin', adminPath) + (query ? `?${query}` : ''));
17
+ // Handle upgrade required screen
18
+ if (this.pageUtils.isCurrentURL('wp-admin/upgrade.php')) {
19
+ // Click update
20
+ await this.page.click('.button.button-large.button-primary');
21
+ // Click continue
22
+ await this.page.click('.button.button-large');
23
+ }
24
+ if (this.pageUtils.isCurrentURL('wp-login.php')) {
25
+ throw new Error('Not logged in');
26
+ }
27
+ const error = await this.getPageError();
28
+ if (error) {
29
+ throw new Error('Unexpected error in page content: ' + error);
30
+ }
31
+ }
32
+ //# sourceMappingURL=visit-admin-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visit-admin-page.js","sourceRoot":"","sources":["../../src/admin/visit-admin-page.ts"],"names":[],"mappings":";;AAiBA,wCAyBC;AA1CD;;GAEG;AACH,+BAA4B;AAO5B;;;;;;GAMG;AACI,KAAK,UAAU,cAAc,CAEnC,SAAiB,EACjB,KAAc;IAEd,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAA,WAAI,EAAE,UAAU,EAAE,SAAS,CAAE,GAAG,CAAE,KAAK,CAAC,CAAC,CAAC,IAAK,KAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAE,CAC9D,CAAC;IAEF,iCAAiC;IACjC,IAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAE,sBAAsB,CAAE,EAAG,CAAC;QAC7D,eAAe;QACf,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,qCAAqC,CAAE,CAAC;QAC/D,iBAAiB;QACjB,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,sBAAsB,CAAE,CAAC;IACjD,CAAC;IAED,IAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAE,cAAc,CAAE,EAAG,CAAC;QACrD,MAAM,IAAI,KAAK,CAAE,eAAe,CAAE,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IACxC,IAAK,KAAK,EAAG,CAAC;QACb,MAAM,IAAI,KAAK,CAAE,oCAAoC,GAAG,KAAK,CAAE,CAAC;IACjE,CAAC;AACF,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.visitSiteEditor = visitSiteEditor;
4
+ /**
5
+ * Visits the Site Editor main page.
6
+ *
7
+ * @param this
8
+ * @param options Options to visit the site editor.
9
+ */
10
+ async function visitSiteEditor(options = {}) {
11
+ const { postId, postType, path, canvas, activeView } = options;
12
+ const query = new URLSearchParams();
13
+ if (postId) {
14
+ query.set('postId', String(postId));
15
+ }
16
+ if (postType) {
17
+ query.set('postType', postType);
18
+ }
19
+ if (path) {
20
+ query.set('path', path);
21
+ }
22
+ if (canvas) {
23
+ query.set('canvas', canvas);
24
+ }
25
+ if (activeView) {
26
+ query.set('activeView', activeView);
27
+ }
28
+ await this.visitAdminPage('site-editor.php', query.toString());
29
+ if (!options.showWelcomeGuide) {
30
+ await this.editor.setPreferences('core/edit-site', {
31
+ welcomeGuide: false,
32
+ welcomeGuideStyles: false,
33
+ welcomeGuidePage: false,
34
+ welcomeGuideTemplate: false,
35
+ });
36
+ }
37
+ /**
38
+ * Wait until the editor is loaded. The logic is a copy of the
39
+ * `waitWhileSiteEditorLoading` function in the `edit-site` package.
40
+ */
41
+ if (!query.size || postId || canvas === 'edit') {
42
+ await this.waitForSiteEditor();
43
+ }
44
+ }
45
+ //# sourceMappingURL=visit-site-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visit-site-editor.js","sourceRoot":"","sources":["../../src/admin/visit-site-editor.ts"],"names":[],"mappings":";;AAoBA,0CAyCC;AA/CD;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CAEpC,UAA6B,EAAE;IAE/B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/D,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAEpC,IAAK,MAAM,EAAG,CAAC;QACd,KAAK,CAAC,GAAG,CAAE,QAAQ,EAAE,MAAM,CAAE,MAAM,CAAE,CAAE,CAAC;IACzC,CAAC;IACD,IAAK,QAAQ,EAAG,CAAC;QAChB,KAAK,CAAC,GAAG,CAAE,UAAU,EAAE,QAAQ,CAAE,CAAC;IACnC,CAAC;IACD,IAAK,IAAI,EAAG,CAAC;QACZ,KAAK,CAAC,GAAG,CAAE,MAAM,EAAE,IAAI,CAAE,CAAC;IAC3B,CAAC;IACD,IAAK,MAAM,EAAG,CAAC;QACd,KAAK,CAAC,GAAG,CAAE,QAAQ,EAAE,MAAM,CAAE,CAAC;IAC/B,CAAC;IACD,IAAK,UAAU,EAAG,CAAC;QAClB,KAAK,CAAC,GAAG,CAAE,YAAY,EAAE,UAAU,CAAE,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,CAAC,cAAc,CAAE,iBAAiB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAE,CAAC;IAEjE,IAAK,CAAE,OAAO,CAAC,gBAAgB,EAAG,CAAC;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAE,gBAAgB,EAAE;YACnD,YAAY,EAAE,KAAK;YACnB,kBAAkB,EAAE,KAAK;YACzB,gBAAgB,EAAE,KAAK;YACvB,oBAAoB,EAAE,KAAK;SAC3B,CAAE,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,IAAK,CAAE,KAAK,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,EAAG,CAAC;QACnD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAChC,CAAC;AACF,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitForSiteEditor = waitForSiteEditor;
4
+ /**
5
+ * Waits for the Site Editor to finish loading, i.e., for all resolvers
6
+ * in the `core` store to finish and then pause for a short period.
7
+ *
8
+ * @param this
9
+ */
10
+ async function waitForSiteEditor() {
11
+ await this.page.evaluate(() => {
12
+ const MAX_LOADING_TIME = 10000;
13
+ const MAX_PAUSE_TIME = 100;
14
+ return new Promise((resolve) => {
15
+ let pauseTimeout;
16
+ function finish() {
17
+ unsubscribe();
18
+ clearTimeout(pauseTimeout);
19
+ clearTimeout(maxTimeout);
20
+ resolve();
21
+ }
22
+ const maxTimeout = setTimeout(finish, MAX_LOADING_TIME);
23
+ function checkResolving() {
24
+ const isResolving = window.wp.data
25
+ .select('core')
26
+ .hasResolvingSelectors();
27
+ if (isResolving) {
28
+ clearTimeout(pauseTimeout);
29
+ pauseTimeout = undefined;
30
+ return;
31
+ }
32
+ if (!pauseTimeout) {
33
+ pauseTimeout = setTimeout(finish, MAX_PAUSE_TIME);
34
+ }
35
+ }
36
+ const unsubscribe = window.wp.data.subscribe(checkResolving, 'core');
37
+ checkResolving();
38
+ });
39
+ });
40
+ }
41
+ //# sourceMappingURL=wait-for-site-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-site-editor.js","sourceRoot":"","sources":["../../src/admin/wait-for-site-editor.ts"],"names":[],"mappings":";;AAWA,8CAwCC;AA9CD;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB;IACtC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAE,GAAG,EAAE;QAC9B,MAAM,gBAAgB,GAAG,KAAK,CAAC;QAC/B,MAAM,cAAc,GAAG,GAAG,CAAC;QAE3B,OAAO,IAAI,OAAO,CAAU,CAAE,OAAO,EAAG,EAAE;YACzC,IAAI,YAAyD,CAAC;YAE9D,SAAS,MAAM;gBACd,WAAW,EAAE,CAAC;gBACd,YAAY,CAAE,YAAY,CAAE,CAAC;gBAC7B,YAAY,CAAE,UAAU,CAAE,CAAC;gBAC3B,OAAO,EAAE,CAAC;YACX,CAAC;YAED,MAAM,UAAU,GAAG,UAAU,CAAE,MAAM,EAAE,gBAAgB,CAAE,CAAC;YAE1D,SAAS,cAAc;gBACtB,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI;qBAChC,MAAM,CAAE,MAAM,CAAE;qBAChB,qBAAqB,EAAE,CAAC;gBAE1B,IAAK,WAAW,EAAG,CAAC;oBACnB,YAAY,CAAE,YAAY,CAAE,CAAC;oBAC7B,YAAY,GAAG,SAAS,CAAC;oBACzB,OAAO;gBACR,CAAC;gBAED,IAAK,CAAE,YAAY,EAAG,CAAC;oBACtB,YAAY,GAAG,UAAU,CAAE,MAAM,EAAE,cAAc,CAAE,CAAC;gBACrD,CAAC;YACF,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAC3C,cAAc,EACd,MAAM,CACN,CAAC;YACF,cAAc,EAAE,CAAC;QAClB,CAAC,CAAE,CAAC;IACL,CAAC,CAAE,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WP_BASE_URL = exports.WP_PASSWORD = exports.WP_USERNAME = exports.WP_ADMIN_USER = void 0;
4
+ const { WP_USERNAME = 'admin', WP_PASSWORD = 'password', WP_BASE_URL = 'http://localhost:8889', } = process.env;
5
+ exports.WP_USERNAME = WP_USERNAME;
6
+ exports.WP_PASSWORD = WP_PASSWORD;
7
+ exports.WP_BASE_URL = WP_BASE_URL;
8
+ const WP_ADMIN_USER = {
9
+ username: WP_USERNAME,
10
+ password: WP_PASSWORD,
11
+ };
12
+ exports.WP_ADMIN_USER = WP_ADMIN_USER;
13
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,MAAM,EACL,WAAW,GAAG,OAAO,EACrB,WAAW,GAAG,UAAU,EACxB,WAAW,GAAG,uBAAuB,GACrC,GAAG,OAAO,CAAC,GAAG,CAAC;AAOQ,kCAAW;AAAE,kCAAW;AAAE,kCAAW;AAL7D,MAAM,aAAa,GAAG;IACrB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;CACZ,CAAC;AAEF,sCAAa"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clickBlockOptionsMenuItem = clickBlockOptionsMenuItem;
4
+ /**
5
+ * Clicks a block toolbar button.
6
+ *
7
+ * @param this
8
+ * @param label The text string of the button label.
9
+ */
10
+ async function clickBlockOptionsMenuItem(label) {
11
+ await this.clickBlockToolbarButton('Options');
12
+ await this.page
13
+ .getByRole('menu', { name: 'Options' })
14
+ .getByRole('menuitem', { name: label })
15
+ .click();
16
+ }
17
+ //# sourceMappingURL=click-block-options-menu-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"click-block-options-menu-item.js","sourceRoot":"","sources":["../../src/editor/click-block-options-menu-item.ts"],"names":[],"mappings":";;AAWA,8DAMC;AAZD;;;;;GAKG;AACI,KAAK,UAAU,yBAAyB,CAAgB,KAAa;IAC3E,MAAM,IAAI,CAAC,uBAAuB,CAAE,SAAS,CAAE,CAAC;IAChD,MAAM,IAAI,CAAC,IAAI;SACb,SAAS,CAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAE;SACxC,SAAS,CAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAE;SACxC,KAAK,EAAE,CAAC;AACX,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clickBlockToolbarButton = clickBlockToolbarButton;
4
+ /**
5
+ * Clicks a block toolbar button.
6
+ *
7
+ * @param this
8
+ * @param label The text string of the button label.
9
+ */
10
+ async function clickBlockToolbarButton(label) {
11
+ await this.showBlockToolbar();
12
+ const blockToolbar = this.page.locator('role=toolbar[name="Block tools"i]');
13
+ const button = blockToolbar.locator(`role=button[name="${label}"]`);
14
+ await button.click();
15
+ }
16
+ //# sourceMappingURL=click-block-toolbar-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"click-block-toolbar-button.js","sourceRoot":"","sources":["../../src/editor/click-block-toolbar-button.ts"],"names":[],"mappings":";;AAWA,0DASC;AAfD;;;;;GAKG;AACI,KAAK,UAAU,uBAAuB,CAAgB,KAAa;IACzE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CACrC,mCAAmC,CACnC,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAE,qBAAsB,KAAM,IAAI,CAAE,CAAC;IAExE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBlocks = getBlocks;
4
+ /**
5
+ * Returns the edited blocks.
6
+ *
7
+ * @param options
8
+ * @param options.clientId Limit the results to be only under a partial tree of the specified clientId.
9
+ * @param options.full Whether to return the full block data or just the name and attributes.
10
+ *
11
+ * @return The blocks.
12
+ */
13
+ async function getBlocks({ clientId, full = false } = {}) {
14
+ await this.page.waitForFunction(() => window?.wp?.blocks && window?.wp?.data);
15
+ return await this.page.evaluate(([_full, _clientId]) => {
16
+ // Serialize serializable attributes of blocks.
17
+ function serializeAttributes(attributes) {
18
+ return Object.fromEntries(Object.entries(attributes).map(([key, value]) => {
19
+ // Serialize RichTextData to string.
20
+ if (value instanceof window.wp.richText.RichTextData) {
21
+ return [key, value.toString()];
22
+ }
23
+ return [key, value];
24
+ }));
25
+ }
26
+ // Remove other unpredictable properties like clientId from blocks for testing purposes.
27
+ function recursivelyTransformBlocks(blocks) {
28
+ return blocks.map((block) => ({
29
+ name: block.name,
30
+ attributes: serializeAttributes(block.attributes),
31
+ innerBlocks: recursivelyTransformBlocks(block.innerBlocks),
32
+ }));
33
+ }
34
+ const blocks = window.wp.data
35
+ .select('core/block-editor')
36
+ .getBlocks(_clientId);
37
+ // The editor might still contain an unmodified empty block even when it's technically "empty".
38
+ if (blocks.length === 1 &&
39
+ window.wp.blocks.isUnmodifiedDefaultBlock(blocks[0])) {
40
+ return [];
41
+ }
42
+ return _full ? blocks : recursivelyTransformBlocks(blocks);
43
+ }, [full, clientId]);
44
+ }
45
+ //# sourceMappingURL=get-blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-blocks.js","sourceRoot":"","sources":["../../src/editor/get-blocks.ts"],"names":[],"mappings":";;AAoBA,8BAsDC;AA/DD;;;;;;;;GAQG;AACI,KAAK,UAAU,SAAS,CAE9B,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,KAA4C,EAAE;IAEtE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,MAAM,EAAE,EAAE,EAAE,IAAI,CAC5C,CAAC;IAEF,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAC9B,CAAE,CAAE,KAAK,EAAE,SAAS,CAAE,EAAG,EAAE;QAC1B,+CAA+C;QAC/C,SAAS,mBAAmB,CAC3B,UAAqC;YAErC,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAE,UAAU,CAAE,CAAC,GAAG,CAAE,CAAE,CAAE,GAAG,EAAE,KAAK,CAAE,EAAG,EAAE;gBACtD,oCAAoC;gBACpC,IACC,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAC/C,CAAC;oBACF,OAAO,CAAE,GAAG,EAAI,KAAiB,CAAC,QAAQ,EAAE,CAAE,CAAC;gBAChD,CAAC;gBACD,OAAO,CAAE,GAAG,EAAE,KAAK,CAAE,CAAC;YACvB,CAAC,CAAE,CACH,CAAC;QACH,CAAC;QAED,wFAAwF;QACxF,SAAS,0BAA0B,CAAE,MAAe;YACnD,OAAO,MAAM,CAAC,GAAG,CAAE,CAAE,KAAK,EAAG,EAAE,CAAC,CAAE;gBACjC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,mBAAmB,CAAE,KAAK,CAAC,UAAU,CAAE;gBACnD,WAAW,EAAE,0BAA0B,CACtC,KAAK,CAAC,WAAW,CACjB;aACD,CAAE,CAAE,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI;aAC3B,MAAM,CAAE,mBAAmB,CAAE;aAC7B,SAAS,CAAE,SAAS,CAAa,CAAC;QAEpC,+FAA+F;QAC/F,IACC,MAAM,CAAC,MAAM,KAAK,CAAC;YACnB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAE,MAAM,CAAE,CAAC,CAAE,CAAE,EACvD,CAAC;YACF,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAE,MAAM,CAAE,CAAC;IAC9D,CAAC,EACD,CAAE,IAAI,EAAE,QAAQ,CAAE,CAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEditedPostContent = getEditedPostContent;
4
+ /**
5
+ * Returns a promise which resolves with the edited post content (HTML string).
6
+ *
7
+ * @param this
8
+ *
9
+ * @return Promise resolving with post content markup.
10
+ */
11
+ async function getEditedPostContent() {
12
+ await this.page.waitForFunction(() => window?.wp?.data);
13
+ return await this.page.evaluate(() => window.wp.data.select('core/editor').getEditedPostContent());
14
+ }
15
+ //# sourceMappingURL=get-edited-post-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-edited-post-content.js","sourceRoot":"","sources":["../../src/editor/get-edited-post-content.ts"],"names":[],"mappings":";;AAYA,oDAMC;AAbD;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB;IACzC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAE,CAAC;IAE1D,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAE,GAAG,EAAE,CACrC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,aAAa,CAAE,CAAC,oBAAoB,EAAE,CAC7D,CAAC;AACH,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Editor = void 0;
4
+ /**
5
+ * Internal dependencies
6
+ */
7
+ const click_block_options_menu_item_1 = require("./click-block-options-menu-item");
8
+ const click_block_toolbar_button_1 = require("./click-block-toolbar-button");
9
+ const get_blocks_1 = require("./get-blocks");
10
+ const get_edited_post_content_1 = require("./get-edited-post-content");
11
+ const insert_block_1 = require("./insert-block");
12
+ const open_document_settings_sidebar_1 = require("./open-document-settings-sidebar");
13
+ const preview_1 = require("./preview");
14
+ const publish_post_1 = require("./publish-post");
15
+ const save_draft_1 = require("./save-draft");
16
+ const select_blocks_1 = require("./select-blocks");
17
+ const set_content_1 = require("./set-content");
18
+ const set_preferences_1 = require("./set-preferences");
19
+ const show_block_toolbar_1 = require("./show-block-toolbar");
20
+ const site_editor_1 = require("./site-editor");
21
+ const set_is_fixed_toolbar_1 = require("./set-is-fixed-toolbar");
22
+ const switch_to_legacy_canvas_1 = require("./switch-to-legacy-canvas");
23
+ const transform_block_to_1 = require("./transform-block-to");
24
+ const switch_editor_tool_1 = require("./switch-editor-tool");
25
+ class Editor {
26
+ browser;
27
+ page;
28
+ context;
29
+ constructor({ page }) {
30
+ this.page = page;
31
+ this.context = page.context();
32
+ this.browser = this.context.browser();
33
+ }
34
+ get canvas() {
35
+ return this.page.frameLocator('[name="editor-canvas"]');
36
+ }
37
+ /** @borrows clickBlockOptionsMenuItem as this.clickBlockOptionsMenuItem */
38
+ clickBlockOptionsMenuItem = click_block_options_menu_item_1.clickBlockOptionsMenuItem.bind(this);
39
+ /** @borrows clickBlockToolbarButton as this.clickBlockToolbarButton */
40
+ clickBlockToolbarButton = click_block_toolbar_button_1.clickBlockToolbarButton.bind(this);
41
+ /** @borrows getBlocks as this.getBlocks */
42
+ getBlocks = get_blocks_1.getBlocks.bind(this);
43
+ /** @borrows getEditedPostContent as this.getEditedPostContent */
44
+ getEditedPostContent = get_edited_post_content_1.getEditedPostContent.bind(this);
45
+ /** @borrows insertBlock as this.insertBlock */
46
+ insertBlock = insert_block_1.insertBlock.bind(this);
47
+ /** @borrows openDocumentSettingsSidebar as this.openDocumentSettingsSidebar */
48
+ openDocumentSettingsSidebar = open_document_settings_sidebar_1.openDocumentSettingsSidebar.bind(this);
49
+ /** @borrows openPreviewPage as this.openPreviewPage */
50
+ openPreviewPage = preview_1.openPreviewPage.bind(this);
51
+ /** @borrows publishPost as this.publishPost */
52
+ publishPost = publish_post_1.publishPost.bind(this);
53
+ /** @borrows saveDraft as this.saveDraft */
54
+ saveDraft = save_draft_1.saveDraft.bind(this);
55
+ /** @borrows saveSiteEditorEntities as this.saveSiteEditorEntities */
56
+ saveSiteEditorEntities = site_editor_1.saveSiteEditorEntities.bind(this);
57
+ /** @borrows selectBlocks as this.selectBlocks */
58
+ selectBlocks = select_blocks_1.selectBlocks.bind(this);
59
+ /** @borrows setContent as this.setContent */
60
+ setContent = set_content_1.setContent.bind(this);
61
+ /** @borrows setPreferences as this.setPreferences */
62
+ setPreferences = set_preferences_1.setPreferences.bind(this);
63
+ /** @borrows showBlockToolbar as this.showBlockToolbar */
64
+ showBlockToolbar = show_block_toolbar_1.showBlockToolbar.bind(this);
65
+ /** @borrows setIsFixedToolbar as this.setIsFixedToolbar */
66
+ setIsFixedToolbar = set_is_fixed_toolbar_1.setIsFixedToolbar.bind(this);
67
+ /** @borrows switchEditorTool as this.switchEditorTool */
68
+ switchEditorTool = switch_editor_tool_1.switchEditorTool.bind(this);
69
+ /** @borrows switchToLegacyCanvas as this.switchToLegacyCanvas */
70
+ switchToLegacyCanvas = switch_to_legacy_canvas_1.switchToLegacyCanvas.bind(this);
71
+ /** @borrows transformBlockTo as this.transformBlockTo */
72
+ transformBlockTo = transform_block_to_1.transformBlockTo.bind(this);
73
+ }
74
+ exports.Editor = Editor;
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/editor/index.ts"],"names":[],"mappings":";;;AAUA;;GAEG;AACH,mFAA4E;AAC5E,6EAAuE;AACvE,6CAAyC;AACzC,uEAAiE;AACjE,iDAA6C;AAC7C,qFAA+E;AAC/E,uCAA4C;AAC5C,iDAA6C;AAC7C,6CAAyC;AACzC,mDAA+C;AAC/C,+CAA2C;AAC3C,uDAAmD;AACnD,6DAAwD;AACxD,+CAAuD;AACvD,iEAA2D;AAC3D,uEAAiE;AACjE,6DAAwD;AACxD,6DAAwD;AAMxD,MAAa,MAAM;IAClB,OAAO,CAAU;IACjB,IAAI,CAAO;IACX,OAAO,CAAiB;IAExB,YAAa,EAAE,IAAI,EAA0B;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAG,CAAC;IACxC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,wBAAwB,CAAE,CAAC;IAC3D,CAAC;IAED,2EAA2E;IAC3E,yBAAyB,GACxB,yDAAyB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACxC,uEAAuE;IACvE,uBAAuB,GACtB,oDAAuB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACtC,2CAA2C;IAC3C,SAAS,GAAqB,sBAAS,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACrD,iEAAiE;IACjE,oBAAoB,GACnB,8CAAoB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACnC,+CAA+C;IAC/C,WAAW,GAAuB,0BAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC3D,+EAA+E;IAC/E,2BAA2B,GAC1B,4DAA2B,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC1C,uDAAuD;IACvD,eAAe,GAA2B,yBAAe,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACvE,+CAA+C;IAC/C,WAAW,GAAuB,0BAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC3D,2CAA2C;IAC3C,SAAS,GAAqB,sBAAS,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACrD,qEAAqE;IACrE,sBAAsB,GACrB,oCAAsB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACrC,iDAAiD;IACjD,YAAY,GAAwB,4BAAY,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC9D,6CAA6C;IAC7C,UAAU,GAAsB,wBAAU,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACxD,qDAAqD;IACrD,cAAc,GAA0B,gCAAc,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACpE,yDAAyD;IACzD,gBAAgB,GAA4B,qCAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC1E,2DAA2D;IAC3D,iBAAiB,GAChB,wCAAiB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAChC,yDAAyD;IACzD,gBAAgB,GAA4B,qCAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IAC1E,iEAAiE;IACjE,oBAAoB,GACnB,8CAAoB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;IACnC,yDAAyD;IACzD,gBAAgB,GAA4B,qCAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;CAC1E;AA1DD,wBA0DC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.insertBlock = insertBlock;
4
+ /**
5
+ * Insert a block.
6
+ *
7
+ * @param blockRepresentation Inserted block representation.
8
+ * @param options
9
+ * @param options.clientId Client ID of the parent block to insert into.
10
+ */
11
+ async function insertBlock(blockRepresentation, { clientId } = {}) {
12
+ await this.page.waitForFunction(() => window?.wp?.blocks && window?.wp?.data);
13
+ await this.page.evaluate(([_blockRepresentation, _clientId]) => {
14
+ function recursiveCreateBlock({ name, attributes = {}, innerBlocks = [], }) {
15
+ return window.wp.blocks.createBlock(name, attributes, innerBlocks.map((innerBlock) => recursiveCreateBlock(innerBlock)));
16
+ }
17
+ const block = recursiveCreateBlock(_blockRepresentation);
18
+ window.wp.data
19
+ .dispatch('core/block-editor')
20
+ .insertBlock(block, undefined, _clientId);
21
+ }, [blockRepresentation, clientId]);
22
+ }
23
+ //# sourceMappingURL=insert-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-block.js","sourceRoot":"","sources":["../../src/editor/insert-block.ts"],"names":[],"mappings":";;AAqDS,kCAAW;AA1CpB;;;;;;GAMG;AACH,KAAK,UAAU,WAAW,CAEzB,mBAAwC,EACxC,EAAE,QAAQ,KAA4B,EAAE;IAExC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,MAAM,EAAE,EAAE,EAAE,IAAI,CAC5C,CAAC;IAEF,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACvB,CAAE,CAAE,oBAAoB,EAAE,SAAS,CAAE,EAAG,EAAE;QACzC,SAAS,oBAAoB,CAAE,EAC9B,IAAI,EACJ,UAAU,GAAG,EAAE,EACf,WAAW,GAAG,EAAE,GACK;YACrB,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAClC,IAAI,EACJ,UAAU,EACV,WAAW,CAAC,GAAG,CAAE,CAAE,UAAU,EAAG,EAAE,CACjC,oBAAoB,CAAE,UAAU,CAAE,CAClC,CACD,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,oBAAoB,CAAE,oBAAoB,CAAE,CAAC;QAE3D,MAAM,CAAC,EAAE,CAAC,IAAI;aACZ,QAAQ,CAAE,mBAAmB,CAAE;aAC/B,WAAW,CAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAE,CAAC;IAC9C,CAAC,EACD,CAAE,mBAAmB,EAAE,QAAQ,CAAW,CAC1C,CAAC;AACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openDocumentSettingsSidebar = openDocumentSettingsSidebar;
4
+ /**
5
+ * Clicks on the button in the header which opens Document Settings sidebar when
6
+ * it is closed.
7
+ *
8
+ * @param this
9
+ */
10
+ async function openDocumentSettingsSidebar() {
11
+ const toggleButton = this.page
12
+ .getByRole('region', { name: 'Editor top bar' })
13
+ .getByRole('button', {
14
+ name: 'Settings',
15
+ exact: true,
16
+ disabled: false,
17
+ });
18
+ const isClosed = (await toggleButton.getAttribute('aria-expanded')) === 'false';
19
+ if (isClosed) {
20
+ await toggleButton.click();
21
+ await this.page
22
+ .getByRole('region', { name: 'Editor settings' })
23
+ .getByRole('button', { name: 'Close Settings' })
24
+ .waitFor();
25
+ }
26
+ }
27
+ //# sourceMappingURL=open-document-settings-sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-document-settings-sidebar.js","sourceRoot":"","sources":["../../src/editor/open-document-settings-sidebar.ts"],"names":[],"mappings":";;AAWA,kEAmBC;AAzBD;;;;;GAKG;AACI,KAAK,UAAU,2BAA2B;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI;SAC5B,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;SACjD,SAAS,CAAE,QAAQ,EAAE;QACrB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,KAAK;KACf,CAAE,CAAC;IAEL,MAAM,QAAQ,GACb,CAAE,MAAM,YAAY,CAAC,YAAY,CAAE,eAAe,CAAE,CAAE,KAAK,OAAO,CAAC;IAEpE,IAAK,QAAQ,EAAG,CAAC;QAChB,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,IAAI;aACb,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAE;aAClD,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;aACjD,OAAO,EAAE,CAAC;IACb,CAAC;AACF,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openPreviewPage = openPreviewPage;
4
+ /**
5
+ * Opens the preview page of an edited post.
6
+ *
7
+ * @param this
8
+ *
9
+ * @return preview page.
10
+ */
11
+ async function openPreviewPage() {
12
+ const editorTopBar = this.page.locator('role=region[name="Editor top bar"i]');
13
+ const previewButton = editorTopBar.locator('role=button[name="View"i]');
14
+ await previewButton.click();
15
+ const [previewPage] = await Promise.all([
16
+ this.context.waitForEvent('page'),
17
+ this.page.click('role=menuitem[name="Preview in new tab"i]'),
18
+ ]);
19
+ return previewPage;
20
+ }
21
+ //# sourceMappingURL=preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/editor/preview.ts"],"names":[],"mappings":";;AAiBA,0CAcC;AArBD;;;;;;GAMG;AACI,KAAK,UAAU,eAAe;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CACrC,qCAAqC,CACrC,CAAC;IACF,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAE,2BAA2B,CAAE,CAAC;IAE1E,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAE5B,MAAM,CAAE,WAAW,CAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAE;QAC1C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAE,MAAM,CAAE;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,2CAA2C,CAAE;KAC9D,CAAE,CAAC;IAEJ,OAAO,WAAW,CAAC;AACpB,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.publishPost = publishPost;
4
+ /**
5
+ * Publishes the post, resolving once the request is complete (once a notice
6
+ * is displayed).
7
+ *
8
+ * @param this
9
+ */
10
+ async function publishPost() {
11
+ // If we have changes in other entities, the label is `Save` instead of `Publish`.
12
+ const saveButton = this.page
13
+ .getByRole('region', { name: 'Editor top bar' })
14
+ .getByRole('button', { name: 'Save', exact: true });
15
+ const publishButton = this.page
16
+ .getByRole('region', { name: 'Editor top bar' })
17
+ .getByRole('button', { name: 'Publish', exact: true });
18
+ const buttonToClick = (await saveButton.isVisible())
19
+ ? saveButton
20
+ : publishButton;
21
+ await buttonToClick.click();
22
+ const entitiesSaveButton = this.page
23
+ .getByRole('region', { name: 'Editor publish' })
24
+ .getByRole('button', { name: 'Save', exact: true });
25
+ const isEntitiesSavePanelVisible = await entitiesSaveButton.isVisible();
26
+ // Save any entities.
27
+ if (isEntitiesSavePanelVisible) {
28
+ // Handle saving entities.
29
+ await entitiesSaveButton.click();
30
+ }
31
+ // Handle saving just the post.
32
+ await this.page
33
+ .getByRole('region', {
34
+ name: 'Editor publish',
35
+ })
36
+ .getByRole('button', { name: 'Publish', exact: true })
37
+ .click();
38
+ await this.page
39
+ .getByRole('button', { name: 'Dismiss this notice' })
40
+ .filter({ hasText: 'published' })
41
+ .waitFor();
42
+ const postId = new URL(this.page.url()).searchParams.get('post');
43
+ return typeof postId === 'string' ? parseInt(postId, 10) : null;
44
+ }
45
+ //# sourceMappingURL=publish-post.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-post.js","sourceRoot":"","sources":["../../src/editor/publish-post.ts"],"names":[],"mappings":";;AAWA,kCAuCC;AA7CD;;;;;GAKG;AACI,KAAK,UAAU,WAAW;IAChC,kFAAkF;IAClF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI;SAC1B,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;SACjD,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAC;IACvD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI;SAC7B,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;SACjD,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAC;IAC1D,MAAM,aAAa,GAAG,CAAE,MAAM,UAAU,CAAC,SAAS,EAAE,CAAE;QACrD,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,aAAa,CAAC;IACjB,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAE5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI;SAClC,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAE;SACjD,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAC;IACvD,MAAM,0BAA0B,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,CAAC;IAExE,qBAAqB;IACrB,IAAK,0BAA0B,EAAG,CAAC;QAClC,0BAA0B;QAC1B,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,+BAA+B;IAC/B,MAAM,IAAI,CAAC,IAAI;SACb,SAAS,CAAE,QAAQ,EAAE;QACrB,IAAI,EAAE,gBAAgB;KACtB,CAAE;SACF,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE;SACvD,KAAK,EAAE,CAAC;IAEV,MAAM,IAAI,CAAC,IAAI;SACb,SAAS,CAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAE;SACtD,MAAM,CAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAE;SAClC,OAAO,EAAE,CAAC;IACZ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAE,CAAC,YAAY,CAAC,GAAG,CAAE,MAAM,CAAE,CAAC;IAErE,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAE,MAAM,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC"}