@wordpress/e2e-test-utils-playwright 1.46.0 → 1.48.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 (295) hide show
  1. package/build-types/admin/index.d.ts +3 -0
  2. package/build-types/admin/index.d.ts.map +1 -1
  3. package/build-types/admin/visit-site-editor.d.ts.map +1 -1
  4. package/build-types/admin/wait-for-site-editor.d.ts +12 -0
  5. package/build-types/admin/wait-for-site-editor.d.ts.map +1 -0
  6. package/build-types/metrics/index.d.ts +22 -5
  7. package/build-types/metrics/index.d.ts.map +1 -1
  8. package/build-types/request-utils/index.d.ts +3 -1
  9. package/build-types/request-utils/index.d.ts.map +1 -1
  10. package/build-types/request-utils/preferences.d.ts +11 -0
  11. package/build-types/request-utils/preferences.d.ts.map +1 -1
  12. package/package.json +4 -5
  13. package/src/admin/create-new-post.ts +47 -0
  14. package/src/admin/edit-post.ts +24 -0
  15. package/{build/admin/get-page-error.js → src/admin/get-page-error.ts} +12 -9
  16. package/src/admin/index.ts +52 -0
  17. package/src/admin/visit-admin-page.ts +43 -0
  18. package/src/admin/visit-site-editor.ts +62 -0
  19. package/src/admin/wait-for-site-editor.ts +52 -0
  20. package/src/config.ts +12 -0
  21. package/src/editor/click-block-options-menu-item.ts +18 -0
  22. package/src/editor/click-block-toolbar-button.ts +21 -0
  23. package/src/editor/get-blocks.ts +75 -0
  24. package/src/editor/get-edited-post-content.ts +19 -0
  25. package/src/editor/index.ts +95 -0
  26. package/src/editor/insert-block.ts +54 -0
  27. package/src/editor/open-document-settings-sidebar.ts +31 -0
  28. package/src/editor/preview.ts +32 -0
  29. package/src/editor/publish-post.ts +51 -0
  30. package/src/editor/save-draft.ts +20 -0
  31. package/src/editor/select-blocks.ts +48 -0
  32. package/src/editor/set-content.ts +24 -0
  33. package/src/editor/set-is-fixed-toolbar.ts +20 -0
  34. package/src/editor/set-preferences.ts +37 -0
  35. package/src/editor/show-block-toolbar.ts +20 -0
  36. package/src/editor/site-editor.ts +55 -0
  37. package/src/editor/switch-editor-tool.ts +34 -0
  38. package/src/editor/switch-to-legacy-canvas.ts +20 -0
  39. package/src/editor/transform-block-to.ts +34 -0
  40. package/src/index.ts +8 -0
  41. package/src/lighthouse/index.ts +75 -0
  42. package/src/metrics/index.ts +441 -0
  43. package/src/page-utils/drag-files.ts +173 -0
  44. package/src/page-utils/emulate-network-conditions.ts +101 -0
  45. package/src/page-utils/index.ts +54 -0
  46. package/src/page-utils/is-current-url.ts +20 -0
  47. package/src/page-utils/keycodes.ts +48 -0
  48. package/src/page-utils/press-keys.ts +195 -0
  49. package/{build → src}/page-utils/set-browser-viewport.js +14 -12
  50. package/src/request-utils/blocks.ts +58 -0
  51. package/src/request-utils/comments.ts +80 -0
  52. package/src/request-utils/gutenberg-experiments.ts +62 -0
  53. package/src/request-utils/index.ts +222 -0
  54. package/src/request-utils/login.ts +34 -0
  55. package/src/request-utils/media.ts +102 -0
  56. package/src/request-utils/menus.ts +145 -0
  57. package/src/request-utils/pages.ts +75 -0
  58. package/src/request-utils/patterns.ts +31 -0
  59. package/src/request-utils/plugins.ts +103 -0
  60. package/src/request-utils/posts.ts +69 -0
  61. package/src/request-utils/preferences.ts +63 -0
  62. package/{build/request-utils/records.js → src/request-utils/records.ts} +15 -10
  63. package/src/request-utils/rest.ts +222 -0
  64. package/src/request-utils/site-settings.ts +58 -0
  65. package/src/request-utils/templates.ts +83 -0
  66. package/src/request-utils/themes.ts +110 -0
  67. package/src/request-utils/users.ts +125 -0
  68. package/src/request-utils/widgets.js +68 -0
  69. package/src/test.ts +204 -0
  70. package/src/types.ts +13 -0
  71. package/build/admin/create-new-post.cjs +0 -51
  72. package/build/admin/create-new-post.cjs.map +0 -7
  73. package/build/admin/create-new-post.js +0 -31
  74. package/build/admin/create-new-post.js.map +0 -1
  75. package/build/admin/edit-post.cjs +0 -40
  76. package/build/admin/edit-post.cjs.map +0 -7
  77. package/build/admin/edit-post.js +0 -20
  78. package/build/admin/edit-post.js.map +0 -1
  79. package/build/admin/get-page-error.cjs +0 -36
  80. package/build/admin/get-page-error.cjs.map +0 -7
  81. package/build/admin/get-page-error.js.map +0 -1
  82. package/build/admin/index.cjs +0 -59
  83. package/build/admin/index.cjs.map +0 -7
  84. package/build/admin/index.js +0 -37
  85. package/build/admin/index.js.map +0 -1
  86. package/build/admin/visit-admin-page.cjs +0 -47
  87. package/build/admin/visit-admin-page.cjs.map +0 -7
  88. package/build/admin/visit-admin-page.js +0 -32
  89. package/build/admin/visit-admin-page.js.map +0 -1
  90. package/build/admin/visit-site-editor.cjs +0 -90
  91. package/build/admin/visit-site-editor.cjs.map +0 -7
  92. package/build/admin/visit-site-editor.js +0 -73
  93. package/build/admin/visit-site-editor.js.map +0 -1
  94. package/build/config.cjs +0 -45
  95. package/build/config.cjs.map +0 -7
  96. package/build/config.js +0 -13
  97. package/build/config.js.map +0 -1
  98. package/build/editor/click-block-options-menu-item.cjs +0 -34
  99. package/build/editor/click-block-options-menu-item.cjs.map +0 -7
  100. package/build/editor/click-block-options-menu-item.js +0 -17
  101. package/build/editor/click-block-options-menu-item.js.map +0 -1
  102. package/build/editor/click-block-toolbar-button.cjs +0 -38
  103. package/build/editor/click-block-toolbar-button.cjs.map +0 -7
  104. package/build/editor/click-block-toolbar-button.js +0 -16
  105. package/build/editor/click-block-toolbar-button.js.map +0 -1
  106. package/build/editor/get-blocks.cjs +0 -64
  107. package/build/editor/get-blocks.cjs.map +0 -7
  108. package/build/editor/get-blocks.js +0 -45
  109. package/build/editor/get-blocks.js.map +0 -1
  110. package/build/editor/get-edited-post-content.cjs +0 -36
  111. package/build/editor/get-edited-post-content.cjs.map +0 -7
  112. package/build/editor/get-edited-post-content.js +0 -15
  113. package/build/editor/get-edited-post-content.js.map +0 -1
  114. package/build/editor/index.cjs +0 -97
  115. package/build/editor/index.cjs.map +0 -7
  116. package/build/editor/index.js +0 -75
  117. package/build/editor/index.js.map +0 -1
  118. package/build/editor/insert-block.cjs +0 -55
  119. package/build/editor/insert-block.cjs.map +0 -7
  120. package/build/editor/insert-block.js +0 -23
  121. package/build/editor/insert-block.js.map +0 -1
  122. package/build/editor/open-document-settings-sidebar.cjs +0 -42
  123. package/build/editor/open-document-settings-sidebar.cjs.map +0 -7
  124. package/build/editor/open-document-settings-sidebar.js +0 -27
  125. package/build/editor/open-document-settings-sidebar.js.map +0 -1
  126. package/build/editor/preview.cjs +0 -42
  127. package/build/editor/preview.cjs.map +0 -7
  128. package/build/editor/preview.js +0 -21
  129. package/build/editor/preview.js.map +0 -1
  130. package/build/editor/publish-post.cjs +0 -47
  131. package/build/editor/publish-post.cjs.map +0 -7
  132. package/build/editor/publish-post.js +0 -45
  133. package/build/editor/publish-post.js.map +0 -1
  134. package/build/editor/save-draft.cjs +0 -34
  135. package/build/editor/save-draft.cjs.map +0 -7
  136. package/build/editor/save-draft.js +0 -18
  137. package/build/editor/save-draft.js.map +0 -1
  138. package/build/editor/select-blocks.cjs +0 -51
  139. package/build/editor/select-blocks.cjs.map +0 -7
  140. package/build/editor/select-blocks.js +0 -28
  141. package/build/editor/select-blocks.js.map +0 -1
  142. package/build/editor/set-content.cjs +0 -39
  143. package/build/editor/set-content.cjs.map +0 -7
  144. package/build/editor/set-content.js +0 -17
  145. package/build/editor/set-content.js.map +0 -1
  146. package/build/editor/set-is-fixed-toolbar.cjs +0 -36
  147. package/build/editor/set-is-fixed-toolbar.cjs.map +0 -7
  148. package/build/editor/set-is-fixed-toolbar.js +0 -18
  149. package/build/editor/set-is-fixed-toolbar.js.map +0 -1
  150. package/build/editor/set-preferences.cjs +0 -43
  151. package/build/editor/set-preferences.cjs.map +0 -7
  152. package/build/editor/set-preferences.js +0 -21
  153. package/build/editor/set-preferences.js.map +0 -1
  154. package/build/editor/show-block-toolbar.cjs +0 -35
  155. package/build/editor/show-block-toolbar.cjs.map +0 -7
  156. package/build/editor/show-block-toolbar.js +0 -19
  157. package/build/editor/show-block-toolbar.js.map +0 -1
  158. package/build/editor/site-editor.cjs +0 -51
  159. package/build/editor/site-editor.cjs.map +0 -7
  160. package/build/editor/site-editor.js +0 -44
  161. package/build/editor/site-editor.js.map +0 -1
  162. package/build/editor/switch-editor-tool.cjs +0 -47
  163. package/build/editor/switch-editor-tool.cjs.map +0 -7
  164. package/build/editor/switch-editor-tool.js +0 -33
  165. package/build/editor/switch-editor-tool.js.map +0 -1
  166. package/build/editor/switch-to-legacy-canvas.cjs +0 -39
  167. package/build/editor/switch-to-legacy-canvas.cjs.map +0 -7
  168. package/build/editor/switch-to-legacy-canvas.js +0 -18
  169. package/build/editor/switch-to-legacy-canvas.js.map +0 -1
  170. package/build/editor/transform-block-to.cjs +0 -46
  171. package/build/editor/transform-block-to.cjs.map +0 -7
  172. package/build/editor/transform-block-to.js +0 -24
  173. package/build/editor/transform-block-to.js.map +0 -1
  174. package/build/index.cjs +0 -51
  175. package/build/index.cjs.map +0 -7
  176. package/build/index.js +0 -19
  177. package/build/index.js.map +0 -1
  178. package/build/lighthouse/index.cjs +0 -96
  179. package/build/lighthouse/index.cjs.map +0 -7
  180. package/build/lighthouse/index.js +0 -61
  181. package/build/lighthouse/index.js.map +0 -1
  182. package/build/metrics/index.cjs +0 -309
  183. package/build/metrics/index.cjs.map +0 -7
  184. package/build/metrics/index.js +0 -258
  185. package/build/metrics/index.js.map +0 -1
  186. package/build/page-utils/drag-files.cjs +0 -143
  187. package/build/page-utils/drag-files.cjs.map +0 -7
  188. package/build/page-utils/drag-files.js +0 -119
  189. package/build/page-utils/drag-files.js.map +0 -1
  190. package/build/page-utils/emulate-network-conditions.cjs +0 -99
  191. package/build/page-utils/emulate-network-conditions.cjs.map +0 -7
  192. package/build/page-utils/emulate-network-conditions.js +0 -71
  193. package/build/page-utils/emulate-network-conditions.js.map +0 -1
  194. package/build/page-utils/index.cjs +0 -59
  195. package/build/page-utils/index.cjs.map +0 -7
  196. package/build/page-utils/index.js +0 -37
  197. package/build/page-utils/index.js.map +0 -1
  198. package/build/page-utils/is-current-url.cjs +0 -36
  199. package/build/page-utils/is-current-url.cjs.map +0 -7
  200. package/build/page-utils/is-current-url.js +0 -21
  201. package/build/page-utils/is-current-url.js.map +0 -1
  202. package/build/page-utils/keycodes.cjs +0 -55
  203. package/build/page-utils/keycodes.cjs.map +0 -7
  204. package/build/page-utils/keycodes.js +0 -41
  205. package/build/page-utils/keycodes.js.map +0 -1
  206. package/build/page-utils/press-keys.cjs +0 -165
  207. package/build/page-utils/press-keys.cjs.map +0 -7
  208. package/build/page-utils/press-keys.js +0 -141
  209. package/build/page-utils/press-keys.js.map +0 -1
  210. package/build/page-utils/set-browser-viewport.cjs +0 -39
  211. package/build/page-utils/set-browser-viewport.cjs.map +0 -7
  212. package/build/page-utils/set-browser-viewport.js.map +0 -1
  213. package/build/request-utils/blocks.cjs +0 -51
  214. package/build/request-utils/blocks.cjs.map +0 -7
  215. package/build/request-utils/blocks.js +0 -40
  216. package/build/request-utils/blocks.js.map +0 -1
  217. package/build/request-utils/comments.cjs +0 -66
  218. package/build/request-utils/comments.cjs.map +0 -7
  219. package/build/request-utils/comments.js +0 -52
  220. package/build/request-utils/comments.js.map +0 -1
  221. package/build/request-utils/gutenberg-experiments.cjs +0 -56
  222. package/build/request-utils/gutenberg-experiments.cjs.map +0 -7
  223. package/build/request-utils/gutenberg-experiments.js +0 -47
  224. package/build/request-utils/gutenberg-experiments.js.map +0 -1
  225. package/build/request-utils/index.cjs +0 -199
  226. package/build/request-utils/index.cjs.map +0 -7
  227. package/build/request-utils/index.js +0 -194
  228. package/build/request-utils/index.js.map +0 -1
  229. package/build/request-utils/login.cjs +0 -48
  230. package/build/request-utils/login.cjs.map +0 -7
  231. package/build/request-utils/login.js +0 -21
  232. package/build/request-utils/login.js.map +0 -1
  233. package/build/request-utils/media.cjs +0 -83
  234. package/build/request-utils/media.cjs.map +0 -7
  235. package/build/request-utils/media.js +0 -106
  236. package/build/request-utils/media.js.map +0 -1
  237. package/build/request-utils/menus.cjs +0 -128
  238. package/build/request-utils/menus.cjs.map +0 -7
  239. package/build/request-utils/menus.js +0 -116
  240. package/build/request-utils/menus.js.map +0 -1
  241. package/build/request-utils/pages.cjs +0 -66
  242. package/build/request-utils/pages.cjs.map +0 -7
  243. package/build/request-utils/pages.js +0 -53
  244. package/build/request-utils/pages.js.map +0 -1
  245. package/build/request-utils/patterns.cjs +0 -44
  246. package/build/request-utils/patterns.cjs.map +0 -7
  247. package/build/request-utils/patterns.js +0 -27
  248. package/build/request-utils/patterns.js.map +0 -1
  249. package/build/request-utils/plugins.cjs +0 -81
  250. package/build/request-utils/plugins.cjs.map +0 -7
  251. package/build/request-utils/plugins.js +0 -85
  252. package/build/request-utils/plugins.js.map +0 -1
  253. package/build/request-utils/posts.cjs +0 -56
  254. package/build/request-utils/posts.cjs.map +0 -7
  255. package/build/request-utils/posts.js +0 -42
  256. package/build/request-utils/posts.js.map +0 -1
  257. package/build/request-utils/preferences.cjs +0 -41
  258. package/build/request-utils/preferences.cjs.map +0 -7
  259. package/build/request-utils/preferences.js +0 -20
  260. package/build/request-utils/preferences.js.map +0 -1
  261. package/build/request-utils/records.cjs +0 -37
  262. package/build/request-utils/records.cjs.map +0 -7
  263. package/build/request-utils/records.js.map +0 -1
  264. package/build/request-utils/rest.cjs +0 -174
  265. package/build/request-utils/rest.cjs.map +0 -7
  266. package/build/request-utils/rest.js +0 -181
  267. package/build/request-utils/rest.js.map +0 -1
  268. package/build/request-utils/site-settings.cjs +0 -45
  269. package/build/request-utils/site-settings.cjs.map +0 -7
  270. package/build/request-utils/site-settings.js +0 -33
  271. package/build/request-utils/site-settings.js.map +0 -1
  272. package/build/request-utils/templates.cjs +0 -68
  273. package/build/request-utils/templates.cjs.map +0 -7
  274. package/build/request-utils/templates.js +0 -54
  275. package/build/request-utils/templates.js.map +0 -1
  276. package/build/request-utils/themes.cjs +0 -92
  277. package/build/request-utils/themes.cjs.map +0 -7
  278. package/build/request-utils/themes.js +0 -69
  279. package/build/request-utils/themes.js.map +0 -1
  280. package/build/request-utils/users.cjs +0 -83
  281. package/build/request-utils/users.cjs.map +0 -7
  282. package/build/request-utils/users.js +0 -81
  283. package/build/request-utils/users.js.map +0 -1
  284. package/build/request-utils/widgets.cjs +0 -79
  285. package/build/request-utils/widgets.cjs.map +0 -7
  286. package/build/request-utils/widgets.js +0 -61
  287. package/build/request-utils/widgets.js.map +0 -1
  288. package/build/test.cjs +0 -136
  289. package/build/test.cjs.map +0 -7
  290. package/build/test.js +0 -189
  291. package/build/test.js.map +0 -1
  292. package/build/types.cjs +0 -19
  293. package/build/types.cjs.map +0 -7
  294. package/build/types.js +0 -3
  295. package/build/types.js.map +0 -1
@@ -10,6 +10,7 @@ import { getPageError } from './get-page-error';
10
10
  import { visitAdminPage } from './visit-admin-page';
11
11
  import { editPost } from './edit-post';
12
12
  import { visitSiteEditor } from './visit-site-editor';
13
+ import { waitForSiteEditor } from './wait-for-site-editor';
13
14
  import type { PageUtils } from '../page-utils';
14
15
  import type { Editor } from '../editor';
15
16
  type AdminConstructorProps = {
@@ -34,6 +35,8 @@ export declare class Admin {
34
35
  visitAdminPage: typeof visitAdminPage;
35
36
  /** @borrows visitSiteEditor as this.visitSiteEditor */
36
37
  visitSiteEditor: typeof visitSiteEditor;
38
+ /** @borrows waitForSiteEditor as this.waitForSiteEditor */
39
+ waitForSiteEditor: typeof waitForSiteEditor;
37
40
  }
38
41
  export {};
39
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEtE;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,KAAK,qBAAqB,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,KAAK;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,YAAa,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAM9D;IAED,mDAAmD;IACnD,aAAa,EAAE,OAAO,aAAa,CAA8B;IACjE,yCAAyC;IACzC,QAAQ,EAAE,OAAO,QAAQ,CAAyB;IAClD,iDAAiD;IACjD,YAAY,EAAE,OAAO,YAAY,CAA6B;IAC9D,qDAAqD;IACrD,cAAc,EAAE,OAAO,cAAc,CAA+B;IACpE,uDAAuD;IACvD,eAAe,EAAE,OAAO,eAAe,CAAgC;CACvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEtE;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,KAAK,qBAAqB,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,KAAK;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,YAAa,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAM9D;IAED,mDAAmD;IACnD,aAAa,EAAE,OAAO,aAAa,CAA8B;IACjE,yCAAyC;IACzC,QAAQ,EAAE,OAAO,QAAQ,CAAyB;IAClD,iDAAiD;IACjD,YAAY,EAAE,OAAO,YAAY,CAA6B;IAC9D,qDAAqD;IACrD,cAAc,EAAE,OAAO,cAAc,CAA+B;IACpE,uDAAuD;IACvD,eAAe,EAAE,OAAO,eAAe,CAAgC;IACvE,2DAA2D;IAC3D,iBAAiB,EAAE,OAAO,iBAAiB,CACX;CAChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"visit-site-editor.d.ts","sourceRoot":"","sources":["../../src/admin/visit-site-editor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAEhC,UAAU,iBAAiB;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACpC,IAAI,EAAE,KAAK,EACX,OAAO,GAAE,iBAAsB,iBA6E/B"}
1
+ {"version":3,"file":"visit-site-editor.d.ts","sourceRoot":"","sources":["../../src/admin/visit-site-editor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAEhC,UAAU,iBAAiB;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACpC,IAAI,EAAE,KAAK,EACX,OAAO,GAAE,iBAAsB,iBAuC/B"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Admin } from './';
5
+ /**
6
+ * Waits for the Site Editor to finish loading, i.e., for all resolvers
7
+ * in the `core` store to finish and then pause for a short period.
8
+ *
9
+ * @param this
10
+ */
11
+ export declare function waitForSiteEditor(this: Admin): Promise<void>;
12
+ //# sourceMappingURL=wait-for-site-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-site-editor.d.ts","sourceRoot":"","sources":["../../src/admin/wait-for-site-editor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAEhC;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAE,IAAI,EAAE,KAAK,iBAwCnD"}
@@ -1,6 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
1
  import type { Page, Browser } from '@playwright/test';
5
2
  type EventType = 'click' | 'focus' | 'focusin' | 'keydown' | 'keypress' | 'keyup' | 'mouseout' | 'mouseover';
6
3
  interface TraceEvent {
@@ -82,13 +79,33 @@ export declare class Metrics {
82
79
  /**
83
80
  * Starts Chromium tracing with predefined options for performance testing.
84
81
  *
82
+ * The category set mirrors what Chrome DevTools enables when recording in
83
+ * the Performance panel: `devtools.timeline` provides the top-level event
84
+ * tree, and the `disabled-by-default-v8.cpu_profiler` + companion
85
+ * `devtools.timeline.stack` categories enable the V8 sampler that
86
+ * populates JavaScript call stacks. Without the latter, the saved trace
87
+ * shows only opaque "Function call" blocks with no JS frames inside.
88
+ *
85
89
  * @param options Options to pass to `browser.startTracing()`.
86
90
  */
87
91
  startTracing(options?: {}): Promise<void>;
88
92
  /**
89
- * Stops Chromium tracing and saves the trace.
93
+ * Stops Chromium tracing.
94
+ *
95
+ * When `name` is a non-empty string and the `WP_ARTIFACTS_PATH` environment
96
+ * variable is set, the raw trace is written to
97
+ * `${WP_ARTIFACTS_PATH}/traces/<name>.trace.json`. The resulting file can
98
+ * be opened in Chrome DevTools (Performance panel → "Load profile…") to
99
+ * inspect the flame graph. Pass a falsy value (or omit the argument) to
100
+ * just parse the trace into `this.trace` without writing — this is the
101
+ * default for iteration loops, where you typically want to save only one
102
+ * representative sample. Callers pick which iteration that is, e.g.
103
+ * `i === Math.floor( iterations / 2 ) && 'post-editor-first-block'`.
104
+ *
105
+ * @param name File name (without extension) identifying the scenario, or
106
+ * `false`/`undefined` to skip writing.
90
107
  */
91
- stopTracing(): Promise<void>;
108
+ stopTracing(name?: string | false): Promise<void>;
92
109
  /**
93
110
  * @return Durations of all traced `keydown`, `keypress`, and `keyup`
94
111
  * events.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAOtD,KAAK,SAAS,GACX,OAAO,GACP,OAAO,GACP,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,CAAC;AAEf,UAAU,UAAU;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACL,IAAI,CAAC,EAAE;YACN,IAAI,EAAE,SAAS,CAAC;SAChB,CAAC;KACF,CAAC;CACF;AAED,UAAU,KAAK;IACd,WAAW,EAAE,UAAU,EAAE,CAAC;CAC1B;AAED,KAAK,uBAAuB,GAAG;IAC9B,IAAI,EAAE,IAAI,CAAC;CACX,CAAC;AAEF,UAAU,qBAAqB;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,OAAO;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IAEb,SAAS,EAAE,qBAAqB,CAAM;IAEtC,YAAa,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAI7C;IAED;;;;OAIG;IACG,eAAe,CAAE,MAAM,GAAE,MAAM,EAAO,mCAkB3C;IAED;;;;;;OAMG;IACG,kBAAkB,oBASvB;IAED;;;;;;;OAOG;IACG,yBAAyB,oBAgB9B;IAED;;;;;;;OAOG;IACG,wBAAwB,oBAsB7B;IAED;;;;;OAKG;IACG,mBAAmB;;;;;;;OAsCxB;IAED;;;;OAIG;IACG,YAAY,CAAE,OAAO,KAAK,iBAM/B;IAED;;OAEG;IACG,WAAW,kBAKhB;IAED;;;OAGG;IACH,uBAAuB,eAMtB;IAED;;OAEG;IACH,0BAA0B,eAKzB;IAED;;OAEG;IACH,sBAAsB,eAErB;IAED;;OAEG;IACH,sBAAsB,eAKrB;IAED;;;OAGG;IACH,iBAAiB,CAAE,SAAS,EAAE,SAAS,YAgBtC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,aAAa,CAAE,MAAM,UAAO,iBAwCjC;IAED;;;;;;;;;OASG;IACG,YAAY,mCAiBjB;CACD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMtD,KAAK,SAAS,GACX,OAAO,GACP,OAAO,GACP,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,CAAC;AAEf,UAAU,UAAU;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACL,IAAI,CAAC,EAAE;YACN,IAAI,EAAE,SAAS,CAAC;SAChB,CAAC;KACF,CAAC;CACF;AAED,UAAU,KAAK;IACd,WAAW,EAAE,UAAU,EAAE,CAAC;CAC1B;AAED,KAAK,uBAAuB,GAAG;IAC9B,IAAI,EAAE,IAAI,CAAC;CACX,CAAC;AAEF,UAAU,qBAAqB;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,OAAO;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IAEb,SAAS,EAAE,qBAAqB,CAAM;IAEtC,YAAa,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAI7C;IAED;;;;OAIG;IACG,eAAe,CAAE,MAAM,GAAE,MAAM,EAAO,mCAkB3C;IAED;;;;;;OAMG;IACG,kBAAkB,oBASvB;IAED;;;;;;;OAOG;IACG,yBAAyB,oBAgB9B;IAED;;;;;;;OAOG;IACG,wBAAwB,oBAsB7B;IAED;;;;;OAKG;IACG,mBAAmB;;;;;;;OAsCxB;IAED;;;;;;;;;;;OAWG;IACG,YAAY,CAAE,OAAO,KAAK,iBAY/B;IAED;;;;;;;;;;;;;;;OAeG;IACG,WAAW,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,iBAmCvC;IAED;;;OAGG;IACH,uBAAuB,eAMtB;IAED;;OAEG;IACH,0BAA0B,eAKzB;IAED;;OAEG;IACH,sBAAsB,eAErB;IAED;;OAEG;IACH,sBAAsB,eAKrB;IAED;;;OAGG;IACH,iBAAiB,CAAE,SAAS,EAAE,SAAS,YAgBtC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,aAAa,CAAE,MAAM,UAAO,iBAwCjC;IAED;;;;;;;;;OASG;IACG,YAAY,mCAiBjB;CACD"}
@@ -13,7 +13,7 @@ import { createPost, deleteAllPosts } from './posts';
13
13
  import { createClassicMenu, createNavigationMenu, deleteAllMenus, getNavigationMenus } from './menus';
14
14
  import { deleteAllPages, createPage } from './pages';
15
15
  import { createRecord } from './records';
16
- import { resetPreferences } from './preferences';
16
+ import { resetPreferences, setPreferences } from './preferences';
17
17
  import { getSiteSettings, updateSiteSettings } from './site-settings';
18
18
  import { deleteAllWidgets, addWidgetBlock } from './widgets';
19
19
  import { setGutenbergExperiments } from './gutenberg-experiments';
@@ -88,6 +88,8 @@ declare class RequestUtils {
88
88
  createTemplate: typeof createTemplate;
89
89
  /** @borrows resetPreferences as this.resetPreferences */
90
90
  resetPreferences: typeof resetPreferences;
91
+ /** @borrows setPreferences as this.setPreferences */
92
+ setPreferences: typeof setPreferences;
91
93
  /** @borrows listMedia as this.listMedia */
92
94
  listMedia: typeof listMedia;
93
95
  /** @borrows uploadMedia as this.uploadMedia */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/request-utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/request-utils/index.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,15 @@ import type { RequestUtils } from './index';
8
8
  * @param this Request utils.
9
9
  */
10
10
  export declare function resetPreferences(this: RequestUtils): Promise<void>;
11
+ /**
12
+ * Set scoped user preferences via the REST API.
13
+ *
14
+ * Reads the current persisted preferences, merges the new values under the
15
+ * given scope, and writes them back.
16
+ *
17
+ * @param this Request utils.
18
+ * @param scope The preference scope (e.g. 'core/edit-post').
19
+ * @param preferences Key/value map of preference names to values.
20
+ */
21
+ export declare function setPreferences(this: RequestUtils, scope: string, preferences: Record<string, any>): Promise<void>;
11
22
  //# sourceMappingURL=preferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../../src/request-utils/preferences.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAE,IAAI,EAAE,YAAY,iBAUzD"}
1
+ {"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../../src/request-utils/preferences.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAE,IAAI,EAAE,YAAY,iBAUzD;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CACnC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,CAAE,MAAM,EAAE,GAAG,CAAE,iBA2BlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/e2e-test-utils-playwright",
3
- "version": "1.46.0",
3
+ "version": "1.48.0",
4
4
  "description": "End-To-End (E2E) test utils for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -25,14 +25,13 @@
25
25
  "npm": ">=8.19.2"
26
26
  },
27
27
  "files": [
28
- "build",
28
+ "src",
29
29
  "build-types"
30
30
  ],
31
- "main": "./build/index.cjs",
32
31
  "exports": {
33
32
  ".": {
34
33
  "types": "./build-types/index.d.ts",
35
- "default": "./build/index.cjs"
34
+ "default": "./src/index.ts"
36
35
  },
37
36
  "./package.json": "./package.json"
38
37
  },
@@ -55,5 +54,5 @@
55
54
  "publishConfig": {
56
55
  "access": "public"
57
56
  },
58
- "gitHead": "51264e33b95fadff9a06b68141e674ce9cde9675"
57
+ "gitHead": "e7856693aeb4e2522d13608cd32c994e4a97cb9c"
59
58
  }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Admin } from './';
5
+
6
+ interface NewPostOptions {
7
+ postType?: string;
8
+ title?: string;
9
+ content?: string;
10
+ excerpt?: string;
11
+ showWelcomeGuide?: boolean;
12
+ fullscreenMode?: boolean;
13
+ }
14
+
15
+ /**
16
+ * Creates new post.
17
+ *
18
+ * @param this
19
+ * @param options Options to create new post.
20
+ */
21
+ export async function createNewPost(
22
+ this: Admin,
23
+ options: NewPostOptions = {}
24
+ ) {
25
+ const query = new URLSearchParams();
26
+ const { postType, title, content, excerpt } = options;
27
+
28
+ if ( postType ) {
29
+ query.set( 'post_type', postType );
30
+ }
31
+ if ( title ) {
32
+ query.set( 'post_title', title );
33
+ }
34
+ if ( content ) {
35
+ query.set( 'content', content );
36
+ }
37
+ if ( excerpt ) {
38
+ query.set( 'excerpt', excerpt );
39
+ }
40
+
41
+ await this.visitAdminPage( 'post-new.php', query.toString() );
42
+
43
+ await this.editor.setPreferences( 'core/edit-post', {
44
+ welcomeGuide: options.showWelcomeGuide ?? false,
45
+ fullscreenMode: options.fullscreenMode ?? false,
46
+ } );
47
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Admin } from '.';
5
+
6
+ /**
7
+ * Open the post with given ID in the editor.
8
+ *
9
+ * @param this
10
+ * @param postId Post ID to visit.
11
+ */
12
+ export async function editPost( this: Admin, postId: string | number ) {
13
+ const query = new URLSearchParams();
14
+
15
+ query.set( 'post', String( postId ) );
16
+ query.set( 'action', 'edit' );
17
+
18
+ await this.visitAdminPage( 'post.php', query.toString() );
19
+
20
+ await this.editor.setPreferences( 'core/edit-post', {
21
+ welcomeGuide: false,
22
+ fullscreenMode: false,
23
+ } );
24
+ }
@@ -1,12 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPageError = getPageError;
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Admin } from './';
5
+
4
6
  /**
5
7
  * Regular expression matching a displayed PHP error within a markup string.
6
8
  *
7
9
  * @see https://github.com/php/php-src/blob/598175e/main/main.c#L1257-L1297
8
10
  */
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>)?/;
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
+
10
14
  /**
11
15
  * Returns a promise resolving to one of either a string or null. A string will
12
16
  * be resolved if an error message is present in the contents of the page. If no
@@ -18,9 +22,8 @@ const REGEXP_PHP_ERROR = /(<b>)?(Fatal error|Recoverable fatal error|Warning|Par
18
22
  * @param this
19
23
  * @return Promise resolving to a string or null, depending whether a page error is present.
20
24
  */
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;
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;
25
29
  }
26
- //# sourceMappingURL=get-page-error.js.map
@@ -0,0 +1,52 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { Browser, Page, BrowserContext } from '@playwright/test';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { createNewPost } from './create-new-post';
10
+ import { getPageError } from './get-page-error';
11
+ import { visitAdminPage } from './visit-admin-page';
12
+ import { editPost } from './edit-post';
13
+ import { visitSiteEditor } from './visit-site-editor';
14
+ import { waitForSiteEditor } from './wait-for-site-editor';
15
+ import type { PageUtils } from '../page-utils';
16
+ import type { Editor } from '../editor';
17
+
18
+ type AdminConstructorProps = {
19
+ page: Page;
20
+ pageUtils: PageUtils;
21
+ editor: Editor;
22
+ };
23
+
24
+ export class Admin {
25
+ page: Page;
26
+ context: BrowserContext;
27
+ browser: Browser;
28
+ pageUtils: PageUtils;
29
+ editor: Editor;
30
+
31
+ constructor( { page, pageUtils, editor }: AdminConstructorProps ) {
32
+ this.page = page;
33
+ this.context = page.context();
34
+ this.browser = this.context.browser()!;
35
+ this.pageUtils = pageUtils;
36
+ this.editor = editor;
37
+ }
38
+
39
+ /** @borrows createNewPost as this.createNewPost */
40
+ createNewPost: typeof createNewPost = createNewPost.bind( this );
41
+ /** @borrows editPost as this.editPost */
42
+ editPost: typeof editPost = editPost.bind( this );
43
+ /** @borrows getPageError as this.getPageError */
44
+ getPageError: typeof getPageError = getPageError.bind( this );
45
+ /** @borrows visitAdminPage as this.visitAdminPage */
46
+ visitAdminPage: typeof visitAdminPage = visitAdminPage.bind( this );
47
+ /** @borrows visitSiteEditor as this.visitSiteEditor */
48
+ visitSiteEditor: typeof visitSiteEditor = visitSiteEditor.bind( this );
49
+ /** @borrows waitForSiteEditor as this.waitForSiteEditor */
50
+ waitForSiteEditor: typeof waitForSiteEditor =
51
+ waitForSiteEditor.bind( this );
52
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { join } from 'path';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import type { Admin } from './';
10
+
11
+ /**
12
+ * Visits admin page and handle errors.
13
+ *
14
+ * @param this
15
+ * @param adminPath String to be serialized as pathname.
16
+ * @param query String to be serialized as query portion of URL.
17
+ */
18
+ export async function visitAdminPage(
19
+ this: Admin,
20
+ adminPath: string,
21
+ query?: string
22
+ ) {
23
+ await this.page.goto(
24
+ join( 'wp-admin', adminPath ) + ( query ? `?${ query }` : '' )
25
+ );
26
+
27
+ // Handle upgrade required screen
28
+ if ( this.pageUtils.isCurrentURL( 'wp-admin/upgrade.php' ) ) {
29
+ // Click update
30
+ await this.page.click( '.button.button-large.button-primary' );
31
+ // Click continue
32
+ await this.page.click( '.button.button-large' );
33
+ }
34
+
35
+ if ( this.pageUtils.isCurrentURL( 'wp-login.php' ) ) {
36
+ throw new Error( 'Not logged in' );
37
+ }
38
+
39
+ const error = await this.getPageError();
40
+ if ( error ) {
41
+ throw new Error( 'Unexpected error in page content: ' + error );
42
+ }
43
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Admin } from './';
5
+
6
+ interface SiteEditorOptions {
7
+ postId?: string | number;
8
+ postType?: string;
9
+ path?: string;
10
+ canvas?: string;
11
+ activeView?: string;
12
+ showWelcomeGuide?: boolean;
13
+ }
14
+
15
+ /**
16
+ * Visits the Site Editor main page.
17
+ *
18
+ * @param this
19
+ * @param options Options to visit the site editor.
20
+ */
21
+ export async function visitSiteEditor(
22
+ this: Admin,
23
+ options: SiteEditorOptions = {}
24
+ ) {
25
+ const { postId, postType, path, canvas, activeView } = options;
26
+ const query = new URLSearchParams();
27
+
28
+ if ( postId ) {
29
+ query.set( 'postId', String( postId ) );
30
+ }
31
+ if ( postType ) {
32
+ query.set( 'postType', postType );
33
+ }
34
+ if ( path ) {
35
+ query.set( 'path', path );
36
+ }
37
+ if ( canvas ) {
38
+ query.set( 'canvas', canvas );
39
+ }
40
+ if ( activeView ) {
41
+ query.set( 'activeView', activeView );
42
+ }
43
+
44
+ await this.visitAdminPage( 'site-editor.php', query.toString() );
45
+
46
+ if ( ! options.showWelcomeGuide ) {
47
+ await this.editor.setPreferences( 'core/edit-site', {
48
+ welcomeGuide: false,
49
+ welcomeGuideStyles: false,
50
+ welcomeGuidePage: false,
51
+ welcomeGuideTemplate: false,
52
+ } );
53
+ }
54
+
55
+ /**
56
+ * Wait until the editor is loaded. The logic is a copy of the
57
+ * `waitWhileSiteEditorLoading` function in the `edit-site` package.
58
+ */
59
+ if ( ! query.size || postId || canvas === 'edit' ) {
60
+ await this.waitForSiteEditor();
61
+ }
62
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Admin } from './';
5
+
6
+ /**
7
+ * Waits for the Site Editor to finish loading, i.e., for all resolvers
8
+ * in the `core` store to finish and then pause for a short period.
9
+ *
10
+ * @param this
11
+ */
12
+ export async function waitForSiteEditor( this: Admin ) {
13
+ await this.page.evaluate( () => {
14
+ const MAX_LOADING_TIME = 10000;
15
+ const MAX_PAUSE_TIME = 100;
16
+
17
+ return new Promise< void >( ( resolve ) => {
18
+ let pauseTimeout: ReturnType< typeof setTimeout > | undefined;
19
+
20
+ function finish() {
21
+ unsubscribe();
22
+ clearTimeout( pauseTimeout );
23
+ clearTimeout( maxTimeout );
24
+ resolve();
25
+ }
26
+
27
+ const maxTimeout = setTimeout( finish, MAX_LOADING_TIME );
28
+
29
+ function checkResolving() {
30
+ const isResolving = window.wp.data
31
+ .select( 'core' )
32
+ .hasResolvingSelectors();
33
+
34
+ if ( isResolving ) {
35
+ clearTimeout( pauseTimeout );
36
+ pauseTimeout = undefined;
37
+ return;
38
+ }
39
+
40
+ if ( ! pauseTimeout ) {
41
+ pauseTimeout = setTimeout( finish, MAX_PAUSE_TIME );
42
+ }
43
+ }
44
+
45
+ const unsubscribe = window.wp.data.subscribe(
46
+ checkResolving,
47
+ 'core'
48
+ );
49
+ checkResolving();
50
+ } );
51
+ } );
52
+ }
package/src/config.ts ADDED
@@ -0,0 +1,12 @@
1
+ const {
2
+ WP_USERNAME = 'admin',
3
+ WP_PASSWORD = 'password',
4
+ WP_BASE_URL = 'http://localhost:8889',
5
+ } = process.env;
6
+
7
+ const WP_ADMIN_USER = {
8
+ username: WP_USERNAME,
9
+ password: WP_PASSWORD,
10
+ } as const;
11
+
12
+ export { WP_ADMIN_USER, WP_USERNAME, WP_PASSWORD, WP_BASE_URL };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Editor } from './index';
5
+
6
+ /**
7
+ * Clicks a block toolbar button.
8
+ *
9
+ * @param this
10
+ * @param label The text string of the button label.
11
+ */
12
+ export async function clickBlockOptionsMenuItem( this: Editor, label: string ) {
13
+ await this.clickBlockToolbarButton( 'Options' );
14
+ await this.page
15
+ .getByRole( 'menu', { name: 'Options' } )
16
+ .getByRole( 'menuitem', { name: label } )
17
+ .click();
18
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Editor } from './index';
5
+
6
+ /**
7
+ * Clicks a block toolbar button.
8
+ *
9
+ * @param this
10
+ * @param label The text string of the button label.
11
+ */
12
+ export async function clickBlockToolbarButton( this: Editor, label: string ) {
13
+ await this.showBlockToolbar();
14
+
15
+ const blockToolbar = this.page.locator(
16
+ 'role=toolbar[name="Block tools"i]'
17
+ );
18
+ const button = blockToolbar.locator( `role=button[name="${ label }"]` );
19
+
20
+ await button.click();
21
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Editor } from './index';
5
+
6
+ type Block = {
7
+ name: string;
8
+ attributes: Record< string, unknown >;
9
+ innerBlocks: Block[];
10
+ };
11
+
12
+ /**
13
+ * Returns the edited blocks.
14
+ *
15
+ * @param options
16
+ * @param options.clientId Limit the results to be only under a partial tree of the specified clientId.
17
+ * @param options.full Whether to return the full block data or just the name and attributes.
18
+ *
19
+ * @return The blocks.
20
+ */
21
+ export async function getBlocks(
22
+ this: Editor,
23
+ { clientId, full = false }: { clientId?: string; full?: boolean } = {}
24
+ ) {
25
+ await this.page.waitForFunction(
26
+ () => window?.wp?.blocks && window?.wp?.data
27
+ );
28
+
29
+ return await this.page.evaluate(
30
+ ( [ _full, _clientId ] ) => {
31
+ // Serialize serializable attributes of blocks.
32
+ function serializeAttributes(
33
+ attributes: Record< string, unknown >
34
+ ) {
35
+ return Object.fromEntries(
36
+ Object.entries( attributes ).map( ( [ key, value ] ) => {
37
+ // Serialize RichTextData to string.
38
+ if (
39
+ value instanceof window.wp.richText.RichTextData
40
+ ) {
41
+ return [ key, ( value as string ).toString() ];
42
+ }
43
+ return [ key, value ];
44
+ } )
45
+ );
46
+ }
47
+
48
+ // Remove other unpredictable properties like clientId from blocks for testing purposes.
49
+ function recursivelyTransformBlocks( blocks: Block[] ): Block[] {
50
+ return blocks.map( ( block ) => ( {
51
+ name: block.name,
52
+ attributes: serializeAttributes( block.attributes ),
53
+ innerBlocks: recursivelyTransformBlocks(
54
+ block.innerBlocks
55
+ ),
56
+ } ) );
57
+ }
58
+
59
+ const blocks = window.wp.data
60
+ .select( 'core/block-editor' )
61
+ .getBlocks( _clientId ) as Block[];
62
+
63
+ // The editor might still contain an unmodified empty block even when it's technically "empty".
64
+ if (
65
+ blocks.length === 1 &&
66
+ window.wp.blocks.isUnmodifiedDefaultBlock( blocks[ 0 ] )
67
+ ) {
68
+ return [];
69
+ }
70
+
71
+ return _full ? blocks : recursivelyTransformBlocks( blocks );
72
+ },
73
+ [ full, clientId ]
74
+ );
75
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import type { Editor } from './index';
5
+
6
+ /**
7
+ * Returns a promise which resolves with the edited post content (HTML string).
8
+ *
9
+ * @param this
10
+ *
11
+ * @return Promise resolving with post content markup.
12
+ */
13
+ export async function getEditedPostContent( this: Editor ) {
14
+ await this.page.waitForFunction( () => window?.wp?.data );
15
+
16
+ return await this.page.evaluate( () =>
17
+ window.wp.data.select( 'core/editor' ).getEditedPostContent()
18
+ );
19
+ }