Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade Playwright to 1.39.0 #54051

Merged
merged 7 commits into from Nov 13, 2023
Merged

Upgrade Playwright to 1.39.0 #54051

merged 7 commits into from Nov 13, 2023

Conversation

Mamaduka
Copy link
Member

@Mamaduka Mamaduka commented Aug 30, 2023

What?

Upgrade Playwright to 1.39.0

What's new?

Testing Instructions

CI checks are green.

@Mamaduka Mamaduka added the [Type] Automated Testing Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests. label Aug 30, 2023
@Mamaduka Mamaduka self-assigned this Aug 30, 2023
@github-actions
Copy link

github-actions bot commented Aug 30, 2023

Size Change: 0 B

Total Size: 1.7 MB

ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 964 B
build/annotations/index.min.js 2.71 kB
build/api-fetch/index.min.js 2.29 kB
build/autop/index.min.js 2.11 kB
build/blob/index.min.js 461 B
build/block-directory/index.min.js 7.25 kB
build/block-directory/style-rtl.css 1.04 kB
build/block-directory/style.css 1.04 kB
build/block-editor/content-rtl.css 4.28 kB
build/block-editor/content.css 4.27 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
build/block-editor/index.min.js 247 kB
build/block-editor/style-rtl.css 15.7 kB
build/block-editor/style.css 15.7 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 138 B
build/block-library/blocks/audio/theme.css 138 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 587 B
build/block-library/blocks/button/editor.css 587 B
build/block-library/blocks/button/style-rtl.css 633 B
build/block-library/blocks/button/style.css 632 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 421 B
build/block-library/blocks/columns/style.css 421 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 647 B
build/block-library/blocks/cover/editor.css 650 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 98 B
build/block-library/blocks/details/style.css 98 B
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 138 B
build/block-library/blocks/embed/theme.css 138 B
build/block-library/blocks/file/editor-rtl.css 316 B
build/block-library/blocks/file/editor.css 316 B
build/block-library/blocks/file/style-rtl.css 280 B
build/block-library/blocks/file/style.css 281 B
build/block-library/blocks/file/view.min.js 320 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 228 B
build/block-library/blocks/form-input/style-rtl.css 343 B
build/block-library/blocks/form-input/style.css 343 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 343 B
build/block-library/blocks/form-submission-notification/editor.css 342 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 452 B
build/block-library/blocks/freeform/editor-rtl.css 2.61 kB
build/block-library/blocks/freeform/editor.css 2.61 kB
build/block-library/blocks/gallery/editor-rtl.css 957 B
build/block-library/blocks/gallery/editor.css 962 B
build/block-library/blocks/gallery/style-rtl.css 1.55 kB
build/block-library/blocks/gallery/style.css 1.55 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 654 B
build/block-library/blocks/group/editor.css 654 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 340 B
build/block-library/blocks/html/editor.css 341 B
build/block-library/blocks/image/editor-rtl.css 849 B
build/block-library/blocks/image/editor.css 847 B
build/block-library/blocks/image/style-rtl.css 1.6 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 2.01 kB
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 505 B
build/block-library/blocks/media-text/style.css 503 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 671 B
build/block-library/blocks/navigation-link/editor.css 672 B
build/block-library/blocks/navigation-link/style-rtl.css 103 B
build/block-library/blocks/navigation-link/style.css 103 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation/editor-rtl.css 2.26 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/style-rtl.css 2.27 kB
build/block-library/blocks/navigation/style.css 2.26 kB
build/block-library/blocks/navigation/view.min.js 1.07 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 401 B
build/block-library/blocks/page-list/editor.css 401 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 235 B
build/block-library/blocks/paragraph/editor.css 235 B
build/block-library/blocks/paragraph/style-rtl.css 335 B
build/block-library/blocks/paragraph/style.css 335 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 508 B
build/block-library/blocks/post-comments-form/style.css 508 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 141 B
build/block-library/blocks/post-excerpt/style.css 141 B
build/block-library/blocks/post-featured-image/editor-rtl.css 666 B
build/block-library/blocks/post-featured-image/editor.css 662 B
build/block-library/blocks/post-featured-image/style-rtl.css 345 B
build/block-library/blocks/post-featured-image/style.css 345 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 409 B
build/block-library/blocks/post-template/style.css 408 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 335 B
build/block-library/blocks/pullquote/style.css 335 B
build/block-library/blocks/pullquote/theme-rtl.css 168 B
build/block-library/blocks/pullquote/theme.css 168 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/style-rtl.css 312 B
build/block-library/blocks/query/style.css 308 B
build/block-library/blocks/query/view.min.js 637 B
build/block-library/blocks/quote/style-rtl.css 237 B
build/block-library/blocks/quote/style.css 237 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 140 B
build/block-library/blocks/read-more/style.css 140 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 613 B
build/block-library/blocks/search/style.css 613 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/search/view.min.js 471 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 234 B
build/block-library/blocks/separator/style.css 234 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 329 B
build/block-library/blocks/shortcode/editor.css 329 B
build/block-library/blocks/site-logo/editor-rtl.css 760 B
build/block-library/blocks/site-logo/editor.css 760 B
build/block-library/blocks/site-logo/style-rtl.css 204 B
build/block-library/blocks/site-logo/style.css 204 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 682 B
build/block-library/blocks/social-links/editor.css 681 B
build/block-library/blocks/social-links/style-rtl.css 1.45 kB
build/block-library/blocks/social-links/style.css 1.45 kB
build/block-library/blocks/spacer/editor-rtl.css 359 B
build/block-library/blocks/spacer/editor.css 359 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 432 B
build/block-library/blocks/table/editor.css 432 B
build/block-library/blocks/table/style-rtl.css 646 B
build/block-library/blocks/table/style.css 645 B
build/block-library/blocks/table/theme-rtl.css 157 B
build/block-library/blocks/table/theme.css 157 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 403 B
build/block-library/blocks/template-part/editor.css 403 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/term-description/style-rtl.css 111 B
build/block-library/blocks/term-description/style.css 111 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 191 B
build/block-library/blocks/video/style.css 191 B
build/block-library/blocks/video/theme-rtl.css 139 B
build/block-library/blocks/video/theme.css 139 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 12.5 kB
build/block-library/editor.css 12.4 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 212 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.5 kB
build/block-library/style.css 14.5 kB
build/block-library/theme-rtl.css 700 B
build/block-library/theme.css 705 B
build/block-serialization-default-parser/index.min.js 1.13 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 51.5 kB
build/commands/index.min.js 15.5 kB
build/commands/style-rtl.css 947 B
build/commands/style.css 942 B
build/components/index.min.js 256 kB
build/components/style-rtl.css 12 kB
build/components/style.css 12 kB
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 2.72 kB
build/core-data/index.min.js 71.8 kB
build/customize-widgets/index.min.js 12.1 kB
build/customize-widgets/style-rtl.css 1.43 kB
build/customize-widgets/style.css 1.43 kB
build/data-controls/index.min.js 651 B
build/data/index.min.js 8.87 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 462 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.68 kB
build/edit-post/classic-rtl.css 571 B
build/edit-post/classic.css 571 B
build/edit-post/index.min.js 35.9 kB
build/edit-post/style-rtl.css 7.75 kB
build/edit-post/style.css 7.74 kB
build/edit-site/index.min.js 209 kB
build/edit-site/style-rtl.css 14.2 kB
build/edit-site/style.css 14.2 kB
build/edit-widgets/index.min.js 17.2 kB
build/edit-widgets/style-rtl.css 4.65 kB
build/edit-widgets/style.css 4.65 kB
build/editor/index.min.js 46 kB
build/editor/style-rtl.css 3.58 kB
build/editor/style.css 3.58 kB
build/element/index.min.js 4.87 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 7.82 kB
build/format-library/style-rtl.css 577 B
build/format-library/style.css 577 B
build/hooks/index.min.js 1.57 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.61 kB
build/interactivity/index.min.js 11.4 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.76 kB
build/keycodes/index.min.js 1.9 kB
build/list-reusable-blocks/index.min.js 2.21 kB
build/list-reusable-blocks/style-rtl.css 865 B
build/list-reusable-blocks/style.css 865 B
build/media-utils/index.min.js 2.92 kB
build/notices/index.min.js 964 B
build/nux/index.min.js 2.01 kB
build/nux/style-rtl.css 775 B
build/nux/style.css 771 B
build/patterns/index.min.js 4.81 kB
build/patterns/style-rtl.css 567 B
build/patterns/style.css 566 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 1.85 kB
build/preferences/index.min.js 1.26 kB
build/primitives/index.min.js 994 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 988 B
build/react-i18n/index.min.js 631 B
build/react-refresh-entry/index.min.js 9.46 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.71 kB
build/reusable-blocks/index.min.js 2.76 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/rich-text/index.min.js 10 kB
build/router/index.min.js 1.79 kB
build/server-side-render/index.min.js 1.96 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 1.98 kB
build/token-list/index.min.js 587 B
build/url/index.min.js 3.83 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 967 B
build/warning/index.min.js 259 B
build/widgets/index.min.js 7.18 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.18 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@github-actions
Copy link

github-actions bot commented Aug 30, 2023

Flaky tests detected in 2c19ed1.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/6809474155
📝 Reported issues:

@Mamaduka
Copy link
Member Author

Mamaduka commented Aug 30, 2023

There is an odd issue with failing tests. Playwright now sees role=presentation as role=img.

Update: I submitted the bug report microsoft/playwright#26809.

@Mamaduka
Copy link
Member Author

I just saw that the Playwright issue was removed from the next release milestone.

While the reported case is a regression, we should also update our tests to unblock the updates.

Why?

A spinner in the image block markup means the media is still uploading. The tests need to wait until the upload process is finished.

@Mamaduka Mamaduka changed the title Upgrade Playwright to 1.37 Upgrade Playwright to 1.38 Oct 3, 2023
@Mamaduka
Copy link
Member Author

I've got a solution for the image/svg problem but discovered a few more blockers from upgrading to the latest Playwright version.

Blockers

  • @wp/scripts - We need to update versions in this package, but playwright-core no longer exposes cli and script fails.
  • I'm getting an odd type of script error when trying to build or commit changes. See the screenshot below.

Screenshot

CleanShot 2023-10-13 at 10 25 22

@kevin940726
Copy link
Member

@Mamaduka Hmm, I can't reproduce the TS errors in the screenshots. I checked out to the branch, did npm install and run npm run build, but everything builds correctly. Is there something I'm missing?

@Mamaduka
Copy link
Member Author

Mamaduka commented Nov 9, 2023

Sorry, @kevin940726. The repro required rebase and bumping the version.

I committed changes using the --no-verify flag, so now you should be able to reproduce them.

  1. git pull on the branch.
  2. npm install.
  3. npm run build

@kevin940726
Copy link
Member

The API and its signature was changed in #48286, but I don't think it's relevant in that PR. Possibly an older attempt to fix some issues, @ellatrix? I think we can revert that change here (done in 299a2fa), the API isn't used anywhere anyway.

@Mamaduka
Copy link
Member Author

Mamaduka commented Nov 9, 2023

Well, that was fast 😄 Thank you, @kevin940726!

Comment on lines +31 to +34
[
path.resolve( require.resolve( 'playwright-core' ), '..', 'cli.js' ),
'install',
],
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@swissspidy, @kevin940726, I had to change the CLI path resolution to this (reason #22612).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it works it works :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Could we just use npx?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried that when I initially found the issue, but it failed locally for me. Pascal might have more details on why we're using node vs. npx.

@swissspidy swissspidy changed the title Upgrade Playwright to 1.38 Upgrade Playwright to 1.39.0 Nov 9, 2023
@Mamaduka
Copy link
Member Author

Mamaduka commented Nov 9, 2023

Pushed the fix for the image block e2e tests (#54051 (comment)), unless there're any other failures this should be good to merge.

Copy link
Member

@kevin940726 kevin940726 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! Thank you!

@Mamaduka
Copy link
Member Author

Mamaduka commented Nov 9, 2023

@kevin940726, the 299a2fa is probably causing should allow dropping an image on an empty paragraph block test to fail.

The test was using drop with locator argument:

await drop(
editor.canvas.locator( '[data-type="core/paragraph"]' )
);

Update: The test/e2e/specs/editor/various/draggable-blocks.spec.js tests also have two similar cases.

@kevin940726
Copy link
Member

Oops! Yep, I accidentally ignored test in my search 🤦. I'll push a fix soon!

@kevin940726
Copy link
Member

kevin940726 commented Nov 9, 2023

Is this the current version of the API or something planned for the future?

The current API. The idea is that dragOver already has to specify an element, so drop shouldn't need it to avoid duplication. And also, sometimes the drop target isn't accessible so can't be targeted (like maybe it's a popover on top of the element). It would be best to be able to just leverage page.mouse.move though but it's trickier.

@Mamaduka
Copy link
Member Author

The 0864852 commit fixes failing should select with shift + click test. It ran in legacy canvas mode, but the assertNativeSelection expects the iframed canvas. I'm unsure why this is passing on the trunk since this is definitely a bug.

cc @WunderBart

@Mamaduka Mamaduka merged commit c173302 into trunk Nov 13, 2023
50 checks passed
@Mamaduka Mamaduka deleted the update/playwright-1-37 branch November 13, 2023 10:40
@github-actions github-actions bot added this to the Gutenberg 17.1 milestone Nov 13, 2023
@youknowriad
Copy link
Contributor

Is this PR responsible of the performance metric jump in the "first block" metric in http://codevitals.run
I wonder why? since the runner is updated for both previous and current tested commit, and the numbers are normalized. Makes me wonder if we're doing something wrong in the tests.

@Mamaduka
Copy link
Member Author

Is this PR responsible of the performance metric jump in the "first block" metric

Do you mean "jump" in a good way? If I'm reading the site correctly, the "First block load" metrics have been improved.

I wonder why?

In theory, improved performance by the Playwright can improve our metrics. But knowing sure reason would be better. Unfortunately, I don't have a clue at the moment; maybe others have some ideas 😅

@youknowriad
Copy link
Contributor

Do you mean "jump" in a good way? If I'm reading the site correctly, the "First block load" metrics have been improved.

It goes in the right direction yeah but a change in the test tool shouldn't impact the metric ideally.

In theory, improved performance by the Playwright can improve our metrics. But knowing sure reason would be better. Unfortunately, I don't have a clue at the moment; maybe others have some ideas 😅

Upgrading playwright can indeed make the tests faster but it shouldn't improve the metrics in our graphs because our graphs compare the current commit with a reference commit and normalize the numbers relatively to and old number for a reference commit. This means that upgrading playwright should in theory update both commits similarly and with the normalization applied, the number should stay stable in the graphs. What happens here, is that the upgrade has made the test faster for the latest commit but the upgrade didn't have the same impact on the reference commit which is strange unless we may be doing something wrong in our tests.

cbravobernal pushed a commit that referenced this pull request Nov 14, 2023
* Bump to latest
* Revert unneeded changes for dragFiles
* Fix 'playwright-core' CLI path resolution
* Fix Image e2e tests
* Fix drop
* Fix failing 'should select with shift + click' e2e test

---------

Co-authored-by: Kai Hao <kai@kaihao.dev>
@WunderBart
Copy link
Member

WunderBart commented Nov 15, 2023

What happens here, is that the upgrade has made the test faster for the latest commit but the upgrade didn't have the same impact on the reference commit which is strange unless we may be doing something wrong in our tests.

It might be an issue with the base commit. Looking at the upgrade commit job, we see the following numbersfor the firstBlock metric:

  • Base commit: 8230.65 ms,
  • Merge commit: 6252.65 ms.

Now, looking at the preceding commit, the numbers were:

  • Base commit: 16681.9 ms,
  • Merge commit: 14901.7 ms.

In both cases, the difference between base and merge commits is ~2 seconds. This might be a static bump between the commits independent of the framework version (or even the framework itself). The UI execution speed could have improved proportionally, but a request might have improved between the base and newer commits that will always have the same ~2s timing difference. Does that make sense?

@youknowriad
Copy link
Contributor

@WunderBart it makes sense and it confirms for me that the metric computation is wrong. It feels like the metric includes a static value that comes from the test itself and not from the actual code loading.

@WunderBart
Copy link
Member

WunderBart commented Nov 16, 2023

@WunderBart it makes sense and it confirms for me that the metric computation is wrong. It feels like the metric includes a static value that comes from the test itself and not from the actual code loading.

@youknowriad, I think the issue might be with how we chose the new base commit recently. The time between the merge commit (that updated the base) and the new base commit was almost 3 months, so there already was a big difference in firstBlock metric (2834ms vs 6764ms) that we didn't track / account for. The aforementioned static 2 seconds were probably already there, which broke the value normalization from day 1.

If we update/reset the base commit, shouldn't we always choose the one that is as close as possible to the merge one so there's no performance difference between the two? The normalization factor would be 1, so we'd likely see some bump from the drift itself, but from that point on, any performance change should be tracked correctly, if I'm not mistaken.

@youknowriad
Copy link
Contributor

@WunderBart I'm not following, I'm not sure how this relates to the base commit at all. We're updating playwright and we're updating it for both the base commit and this commit, so the numbers should change relatively in the same way as if we didn't update playwright.

@WunderBart
Copy link
Member

WunderBart commented Nov 16, 2023

@WunderBart I'm not following, I'm not sure how this relates to the base commit at all. We're updating playwright and we're updating it for both the base commit and this commit, so the numbers should change relatively in the same way as if we didn't update playwright.

What if they did update relatively, but there already was a 2s static bump between the merge and base commits? For example, when we re-set the base, the X metric values were:

  • merge commit: 5000ms
  • base commit: 7000ms
  • display value: 5000 * 7000/7000 = 5000ms

There already was a 2s bump, which we don't know the source of. For the sake of this example, let's assume it came from an improved request, making it a static bump between the commits.

Let's assume the next commit updates Playwright, and the browser execution speed is 30% faster. Assuming the 2000ms is static and not affected by the update, the new values would become:

  • merge commit: 5000 * 0.7 = 3500ms
  • base commit: (7000-2000) * 0.7 + 2000 = 5500ms
  • display value: 3500 * 7000/5500 = 4454ms ❌ (the value was affected)

If we had re-set the base with a commit with the same performance, and even if the static bump happened along the way, the Playwright update would not affect the metric. Consider the following measurement timeline:

  1. We reset the base commit
    • merge commit: 5000ms
    • base commit: 5000ms
    • display value: 5000ms
  2. A static 2s bump is introduced
    • merge commit: 3000ms
    • base commit: 5000ms
    • display value: 3000 * 5000/5000 = 3000ms
  3. We update Playwright (30% speed-up):
    • merge commit: 3000 * 0.7 = 2100ms
    • base commit: 5000 * 0.7 = 3500ms
    • display value: 2100 * 5000/3500 = 3000ms ✅ (the value was not affected)

I hope it makes sense! 😅

@youknowriad
Copy link
Contributor

Assuming the 2000ms is static and not affected by the update, the new values would become:

This is the assumption that I disagree with I think. If 2000ms is a "static" update, then we're measuring the wrong thing. We're not measuring the time the server loads the first block, we're measuring the time it takes playwright to load the first block. In other words, if we're measuring the correct thing, the difference should never be static across two job runs. Maybe our metric is affected by playwright timeout or things like that and it shouldn't be, we should measure real DOM timeouts, real server load times... and playwright's own code shouldn't affect the measure.

@WunderBart
Copy link
Member

Maybe our metric is affected by playwright timeout or things like that and it shouldn't be, we should measure real DOM timeouts, real server load times... and playwright's own code shouldn't affect the measure.

The test itself is very simple as it just waits for the first block selector (inside the editor iframe) - not much to be changed there. I'd love to confirm whether Playwright has anything to do with it, though, but I wasn't able to repro locally so far. Regardless, I think the next time we reset the base, we should choose a commit closest to the merge one so it's at least easier to track down weird bumps like this one.

@youknowriad
Copy link
Contributor

playwright have built-in "waits" when you click buttons and perform any action basically. I think for performance tests, these should be disabled as much as we can.

@WunderBart
Copy link
Member

WunderBart commented Nov 16, 2023

playwright have built-in "waits" when you click buttons and perform any action basically. I think for performance tests, these should be disabled as much as we can.

No UI actions are performed for the loading test (which includes firstBlock), but we do use waitFor() when waiting for the first block locator. The default element state for that method is visible, so we can try changing it to attached. It depends on what we mean by the block being loaded, though.

As for, e.g., a button waits, Playwright ensures that the button is visible, stable (not moving), and clickable (not disabled, not overlayed) before clicking it. We were also doing these checks with Puppeteer (e.g. via waitForSelector) – they just weren't implied. It makes sense to keep them as they stabilize tests like Inserter Open or Hovering Inserter Items. Not sure how it would be better to disable those checks tbh. At least not for the current tests.

@kevin940726
Copy link
Member

kevin940726 commented Nov 21, 2023

IMO, any browser launcher will impact the metrics, which is unavoidable. If we really want to minimize the impact then we might want to use performance.mark in our code to allow granular controls over when we want the test to end. However, I think in our use cases the delay caused by the test runner rarely matters, as we only care about the difference over time rather than the absolute duration for each run (as long as the delay is stable enough).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Automated Testing Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants