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

Fix intermittent RichText e2e test failure #20457

Merged
merged 4 commits into from
Feb 26, 2020

Conversation

youknowriad
Copy link
Contributor

It seems like there might a be a very small delay between the mouse moving and the block toolbar being shown causing a test failure.

This PR fixes the issue by waiting for the toolbar to show before proceeding.

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

github-actions bot commented Feb 26, 2020

Size Change: 0 B

Total Size: 865 kB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1 kB 0 B
build/annotations/index.js 3.43 kB 0 B
build/api-fetch/index.js 3.39 kB 0 B
build/autop/index.js 2.58 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.02 kB 0 B
build/block-directory/style-rtl.css 760 B 0 B
build/block-directory/style.css 760 B 0 B
build/block-editor/index.js 104 kB 0 B
build/block-editor/style-rtl.css 10.3 kB 0 B
build/block-editor/style.css 10.3 kB 0 B
build/block-library/editor-rtl.css 7.66 kB 0 B
build/block-library/editor.css 7.67 kB 0 B
build/block-library/index.js 116 kB 0 B
build/block-library/style-rtl.css 7.49 kB 0 B
build/block-library/style.css 7.49 kB 0 B
build/block-library/theme-rtl.css 669 B 0 B
build/block-library/theme.css 671 B 0 B
build/block-serialization-default-parser/index.js 1.65 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 57.6 kB 0 B
build/components/index.js 191 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.5 kB 0 B
build/compose/index.js 5.76 kB 0 B
build/core-data/index.js 10.5 kB 0 B
build/data-controls/index.js 1.03 kB 0 B
build/data/index.js 8.22 kB 0 B
build/date/index.js 5.37 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.06 kB 0 B
build/edit-post/index.js 90.9 kB 0 B
build/edit-post/style-rtl.css 8.59 kB 0 B
build/edit-post/style.css 8.58 kB 0 B
build/edit-site/index.js 4.62 kB 0 B
build/edit-site/style-rtl.css 2.51 kB 0 B
build/edit-site/style.css 2.51 kB 0 B
build/edit-widgets/index.js 4.41 kB 0 B
build/edit-widgets/style-rtl.css 2.59 kB 0 B
build/edit-widgets/style.css 2.58 kB 0 B
build/editor/editor-styles-rtl.css 325 B 0 B
build/editor/editor-styles.css 327 B 0 B
build/editor/index.js 44.6 kB 0 B
build/editor/style-rtl.css 4.01 kB 0 B
build/editor/style.css 4 kB 0 B
build/element/index.js 4.45 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.6 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/hooks/index.js 1.92 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.45 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.3 kB 0 B
build/keycodes/index.js 1.68 kB 0 B
build/list-reusable-blocks/index.js 2.99 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/media-utils/index.js 4.85 kB 0 B
build/notices/index.js 1.57 kB 0 B
build/nux/index.js 3.02 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.54 kB 0 B
build/primitives/index.js 1.49 kB 0 B
build/priority-queue/index.js 879 B 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/rich-text/index.js 14.3 kB 0 B
build/server-side-render/index.js 2.54 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 4 kB 0 B
build/viewport/index.js 1.61 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.18 kB 0 B

compressed-size-action

Copy link
Member

@diegohaz diegohaz left a comment

Choose a reason for hiding this comment

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

I was looking into this right now! Thanks for solving it! 😊

@ellatrix
Copy link
Member

Did this start happening very recently?

@youknowriad
Copy link
Contributor Author

@ellatrix I only saw it today.

@diegohaz
Copy link
Member

It seems that it started on #19242, specifically on this line:

The old implementation was using componentDidMount, which is synchronous. Changing that to useLayoutEffect (the equivalent to cDM) also seems to fix this issue.

@youknowriad
Copy link
Contributor Author

@diegohaz Seems like using useLayoutEffect would be a better fix as it's more generic.

@diegohaz
Copy link
Member

diegohaz commented Feb 26, 2020

We may lose some performance benefit. But, yeah! Using useLayoutEffect may prevent future issues if there is code expecting this to be sync.

@youknowriad
Copy link
Contributor Author

I updated, let's see what travis says.

@youknowriad
Copy link
Contributor Author

@diegohaz Looks like there's a JS unit test failure now, would you be able to help?

Storyshots use react-test-renderer underneath, which doesn't support ReactDOM.createPortal
@diegohaz
Copy link
Member

It seems that storyshots is trying to create portal now that it's sync. Storyshots uses react-test-renderer underneath, which doesn't support portals.

Mocking ReactDOM.createPortal fixes this, but I'll see if there's a better way to handle it. I think it's better to simply disable storyshots for SlotFIll, as it doesn't add much value.

SlotFill uses ReactDOM.createPortal, which is not supported by Storyshots and react-test-renderer
@diegohaz
Copy link
Member

Should be fixed now!

@youknowriad
Copy link
Contributor Author

Thanks :) I'm questioning Storyshots more and more. I haven't seen any value so far.

@youknowriad youknowriad merged commit f5fdf0f into master Feb 26, 2020
@youknowriad youknowriad deleted the fix/intermittent-e2e-test branch February 26, 2020 11:42
@github-actions github-actions bot added this to the Gutenberg 7.7 milestone Feb 26, 2020
@jorgefilipecosta jorgefilipecosta added the Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Mar 16, 2020
@jorgefilipecosta jorgefilipecosta removed the Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Mar 18, 2020
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.

4 participants