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 failing / flaky Navigation block e2e test by removing unnecessary validation steps for creation of draft page #37755

Closed
wants to merge 2 commits into from

Conversation

getdave
Copy link
Contributor

@getdave getdave commented Jan 6, 2022

Description

The test allows pages to be created from the navigation block and their links added to menu from the Navigation block e2e tests is (still) intermittently failing.

We tried to fix this in #37501 but it appears that was only half the battle!

Running locally it appears we've got some additional steps which attempt to validate that a draft page has been created that might not be necessary.

I believe the behaviour of the Nav block no longer requires that we reselect the Nav item in order to show the link preview.

I've removed that step and it seems to pass.

Fixes #37479

How has this been tested?

We need to re-run CI several times (let's say x5) and check that the test is no longer flaky.

Please feel free to mark test runs below:

Screenshots

Types of changes

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • I've tested my changes with keyboard and screen readers.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all *.native.js files for terms that need renaming or removal).

@getdave getdave added the [Type] Flaky Test Auto-generated flaky test report issue label Jan 6, 2022
@getdave getdave self-assigned this Jan 6, 2022
@github-actions
Copy link

github-actions bot commented Jan 6, 2022

Size Change: +3.66 kB (0%)

Total Size: 1.13 MB

Filename Size Change
build/block-editor/index.min.js 140 kB +2 B (0%)
build/block-library/blocks/audio/editor-rtl.css 150 B +92 B (+159%) 🆘
build/block-library/blocks/audio/editor.css 150 B +92 B (+159%) 🆘
build/block-library/blocks/code/theme-rtl.css 131 B -3 B (-2%)
build/block-library/blocks/code/theme.css 131 B -3 B (-2%)
build/block-library/blocks/navigation/style-rtl.css 1.82 kB +11 B (+1%)
build/block-library/blocks/navigation/style.css 1.81 kB +11 B (+1%)
build/block-library/blocks/navigation/view.min.js 2.82 kB +4 B (0%)
build/block-library/blocks/page-list/editor-rtl.css 385 B +8 B (+2%)
build/block-library/blocks/page-list/editor.css 387 B +10 B (+3%)
build/block-library/blocks/post-comments/style-rtl.css 521 B +12 B (+2%)
build/block-library/blocks/post-comments/style.css 521 B +12 B (+2%)
build/block-library/blocks/tag-cloud/style-rtl.css 214 B +68 B (+47%) 🚨
build/block-library/blocks/tag-cloud/style.css 215 B +69 B (+47%) 🚨
build/block-library/common-rtl.css 908 B -2 B (0%)
build/block-library/common.css 905 B -3 B (0%)
build/block-library/editor-rtl.css 10 kB +25 B (0%)
build/block-library/editor.css 10 kB +25 B (0%)
build/block-library/index.min.js 166 kB +124 B (0%)
build/block-library/style-rtl.css 10.8 kB +78 B (+1%)
build/block-library/style.css 10.8 kB +78 B (+1%)
build/block-library/theme-rtl.css 672 B -3 B (0%)
build/block-library/theme.css 676 B -3 B (0%)
build/blocks/index.min.js 46.3 kB +24 B (0%)
build/components/index.min.js 214 kB -33 B (0%)
build/compose/index.min.js 11.2 kB +2.6 kB (+30%) 🚨
build/edit-post/index.min.js 29.6 kB +81 B (0%)
build/edit-post/style-rtl.css 7.16 kB -4 B (0%)
build/edit-post/style.css 7.16 kB -5 B (0%)
build/edit-site/index.min.js 37.2 kB +74 B (0%)
build/edit-site/style-rtl.css 6.83 kB -5 B (0%)
build/edit-site/style.css 6.82 kB -5 B (0%)
build/edit-widgets/index.min.js 16.6 kB +63 B (0%)
build/edit-widgets/style-rtl.css 4.17 kB -8 B (0%)
build/edit-widgets/style.css 4.17 kB -9 B (0%)
build/editor/index.min.js 38.2 kB +256 B (+1%)
build/editor/style-rtl.css 3.71 kB -37 B (-1%)
build/editor/style.css 3.7 kB -37 B (-1%)
build/rich-text/index.min.js 11 kB +7 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 960 B
build/admin-manifest/index.min.js 1.1 kB
build/annotations/index.min.js 2.75 kB
build/api-fetch/index.min.js 2.21 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 459 B
build/block-directory/index.min.js 6.28 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
build/block-editor/style-rtl.css 14.6 kB
build/block-editor/style.css 14.6 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 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/style-rtl.css 111 B
build/block-library/blocks/audio/style.css 111 B
build/block-library/blocks/audio/theme-rtl.css 125 B
build/block-library/blocks/audio/theme.css 125 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 470 B
build/block-library/blocks/button/editor.css 470 B
build/block-library/blocks/button/style-rtl.css 560 B
build/block-library/blocks/button/style.css 560 B
build/block-library/blocks/buttons/editor-rtl.css 292 B
build/block-library/blocks/buttons/editor.css 292 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 90 B
build/block-library/blocks/code/style.css 90 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 406 B
build/block-library/blocks/columns/style.css 406 B
build/block-library/blocks/comment-template/style-rtl.css 127 B
build/block-library/blocks/comment-template/style.css 127 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/cover/editor-rtl.css 546 B
build/block-library/blocks/cover/editor.css 547 B
build/block-library/blocks/cover/style-rtl.css 1.22 kB
build/block-library/blocks/cover/style.css 1.22 kB
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 417 B
build/block-library/blocks/embed/style.css 417 B
build/block-library/blocks/embed/theme-rtl.css 124 B
build/block-library/blocks/embed/theme.css 124 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 255 B
build/block-library/blocks/file/style.css 255 B
build/block-library/blocks/file/view.min.js 322 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 966 B
build/block-library/blocks/gallery/editor.css 970 B
build/block-library/blocks/gallery/style-rtl.css 1.6 kB
build/block-library/blocks/gallery/style.css 1.6 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 159 B
build/block-library/blocks/group/editor.css 159 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 114 B
build/block-library/blocks/heading/style.css 114 B
build/block-library/blocks/html/editor-rtl.css 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 810 B
build/block-library/blocks/image/editor.css 809 B
build/block-library/blocks/image/style-rtl.css 507 B
build/block-library/blocks/image/style.css 511 B
build/block-library/blocks/image/theme-rtl.css 124 B
build/block-library/blocks/image/theme.css 124 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B
build/block-library/blocks/latest-posts/editor.css 137 B
build/block-library/blocks/latest-posts/style-rtl.css 528 B
build/block-library/blocks/latest-posts/style.css 527 B
build/block-library/blocks/list/style-rtl.css 94 B
build/block-library/blocks/list/style.css 94 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 493 B
build/block-library/blocks/media-text/style.css 490 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 649 B
build/block-library/blocks/navigation-link/editor.css 650 B
build/block-library/blocks/navigation-link/style-rtl.css 94 B
build/block-library/blocks/navigation-link/style.css 94 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-submenu/view.min.js 343 B
build/block-library/blocks/navigation/editor-rtl.css 1.93 kB
build/block-library/blocks/navigation/editor.css 1.94 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/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 273 B
build/block-library/blocks/paragraph/style.css 273 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/style-rtl.css 446 B
build/block-library/blocks/post-comments-form/style.css 446 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 721 B
build/block-library/blocks/post-featured-image/editor.css 721 B
build/block-library/blocks/post-featured-image/style-rtl.css 153 B
build/block-library/blocks/post-featured-image/style.css 153 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 305 B
build/block-library/blocks/post-template/style.css 305 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 389 B
build/block-library/blocks/pullquote/style.css 388 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 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 234 B
build/block-library/blocks/query-pagination/style.css 231 B
build/block-library/blocks/query/editor-rtl.css 131 B
build/block-library/blocks/query/editor.css 132 B
build/block-library/blocks/quote/style-rtl.css 187 B
build/block-library/blocks/quote/style.css 187 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 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 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 397 B
build/block-library/blocks/search/style.css 398 B
build/block-library/blocks/search/theme-rtl.css 64 B
build/block-library/blocks/search/theme.css 64 B
build/block-library/blocks/separator/editor-rtl.css 99 B
build/block-library/blocks/separator/editor.css 99 B
build/block-library/blocks/separator/style-rtl.css 245 B
build/block-library/blocks/separator/style.css 245 B
build/block-library/blocks/separator/theme-rtl.css 172 B
build/block-library/blocks/separator/theme.css 172 B
build/block-library/blocks/shortcode/editor-rtl.css 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 744 B
build/block-library/blocks/site-logo/editor.css 744 B
build/block-library/blocks/site-logo/style-rtl.css 181 B
build/block-library/blocks/site-logo/style.css 181 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 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 177 B
build/block-library/blocks/social-link/editor.css 177 B
build/block-library/blocks/social-links/editor-rtl.css 670 B
build/block-library/blocks/social-links/editor.css 669 B
build/block-library/blocks/social-links/style-rtl.css 1.32 kB
build/block-library/blocks/social-links/style.css 1.32 kB
build/block-library/blocks/spacer/editor-rtl.css 332 B
build/block-library/blocks/spacer/editor.css 332 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 471 B
build/block-library/blocks/table/editor.css 472 B
build/block-library/blocks/table/style-rtl.css 481 B
build/block-library/blocks/table/style.css 481 B
build/block-library/blocks/table/theme-rtl.css 188 B
build/block-library/blocks/table/theme.css 188 B
build/block-library/blocks/template-part/editor-rtl.css 560 B
build/block-library/blocks/template-part/editor.css 559 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/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 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 571 B
build/block-library/blocks/video/editor.css 572 B
build/block-library/blocks/video/style-rtl.css 173 B
build/block-library/blocks/video/style.css 173 B
build/block-library/blocks/video/theme-rtl.css 124 B
build/block-library/blocks/video/theme.css 124 B
build/block-library/reset-rtl.css 474 B
build/block-library/reset.css 474 B
build/block-serialization-default-parser/index.min.js 1.09 kB
build/block-serialization-spec-parser/index.min.js 2.79 kB
build/components/style-rtl.css 15.5 kB
build/components/style.css 15.5 kB
build/core-data/index.min.js 13.3 kB
build/customize-widgets/index.min.js 11.4 kB
build/customize-widgets/style-rtl.css 1.5 kB
build/customize-widgets/style.css 1.49 kB
build/data-controls/index.min.js 631 B
build/data/index.min.js 7.49 kB
build/date/index.min.js 31.9 kB
build/deprecated/index.min.js 485 B
build/dom-ready/index.min.js 304 B
build/dom/index.min.js 4.5 kB
build/edit-navigation/index.min.js 16 kB
build/edit-navigation/style-rtl.css 3.76 kB
build/edit-navigation/style.css 3.76 kB
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/element/index.min.js 3.29 kB
build/escape-html/index.min.js 517 B
build/format-library/index.min.js 6.58 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.63 kB
build/html-entities/index.min.js 424 B
build/i18n/index.min.js 3.71 kB
build/is-shallow-equal/index.min.js 501 B
build/keyboard-shortcuts/index.min.js 1.8 kB
build/keycodes/index.min.js 1.39 kB
build/list-reusable-blocks/index.min.js 1.72 kB
build/list-reusable-blocks/style-rtl.css 838 B
build/list-reusable-blocks/style.css 838 B
build/media-utils/index.min.js 2.92 kB
build/notices/index.min.js 925 B
build/nux/index.min.js 2.08 kB
build/nux/style-rtl.css 747 B
build/nux/style.css 743 B
build/plugins/index.min.js 1.84 kB
build/primitives/index.min.js 924 B
build/priority-queue/index.min.js 582 B
build/react-i18n/index.min.js 671 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.65 kB
build/reusable-blocks/index.min.js 2.22 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/server-side-render/index.min.js 1.57 kB
build/shortcode/index.min.js 1.49 kB
build/token-list/index.min.js 639 B
build/url/index.min.js 1.9 kB
build/viewport/index.min.js 1.05 kB
build/warning/index.min.js 248 B
build/widgets/index.min.js 7.15 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.04 kB

compressed-size-action

@getdave getdave changed the title Remove unnecessary step before validating link is created Fix failing / flaky Navigation block e2e test by removing unnecessary validation steps for creation of draft page Jan 6, 2022
@Mamaduka
Copy link
Member

Mamaduka commented Jan 7, 2022

Failed once but because of the different Navigation test: shows a warning if user does not have permission to edit or update navigation menus.

@talldan
Copy link
Contributor

talldan commented Jan 10, 2022

I don't think the fix in #37501 is correct. Using a mock in this way effectively changes behavior of the application and makes this test have less value. The test is no longer testing what happens in the real world.

The request does 404 reliably in production, so I think the test should expect that to happen rather than change the way the endpoint works to return an empty array.

I'm wondering why expect( console ).toHaveErrored(); fails to work. That's unusual. Perhaps the test is completing before the error has been thrown. That's originally why I added the waitForNetworkIdle, but maybe that isn't working.

@getdave
Copy link
Contributor Author

getdave commented Jan 10, 2022

I don't think the fix in #37501 is correct. Using a mock in this way effectively changes behavior of the application and makes this test have less value. The test is no longer testing what happens in the real world.

I'm not sure about that one. The test is failing because of a 404 _in the consol_e. That isn't an error with the Gutenberg application code. Rather it's a network issue.

Yes this 404's in production but that's ok because that is handled gracefully in the UI. Check it in production and you'll see that happening.

All we're going is mocking an endpoint that's largely irrelevant to this test to avoid an unreliable 404 in the console causing a test failure.

Bottom line - network 404 != bug in application code.

@getdave
Copy link
Contributor Author

getdave commented Jan 10, 2022

Also worth noting that with this fix (and the other one) in place we now have had this flaky test pass ✅ 5 times.

@talldan
Copy link
Contributor

talldan commented Jan 10, 2022

Yes this 404's in production but that's ok because that is handled gracefully in the UI.

Yes, that's exactly my point. It should be handled gracefully in the UI and we should have tests in place to assert that this works. But we've now lost test coverage of this, because the endpoint had been modified to return an array in the end to end test.

@getdave
Copy link
Contributor Author

getdave commented Jan 10, 2022

It should be handled gracefully in the UI and we should have tests in place to assert that this works. But we've now lost test coverage of this, because the endpoint had been modified to return an array in the end to end test.

I understand but...this test isn't asserting on handling the rich previews. It's purely dealing with page creation in the Nav block. My thought was that we should have another test that explicitly checks for graceful handling of rich previews. We're only mocking what is not directly under test.

That's originally why I added the waitForNetworkIdle,

I think if we're resorting to adding workarounds to wait for network conditions then we're probably not constructing the test correctly. Network condition variability on CI is very often what causes flaky tests.

...but maybe that isn't working.

Likely because the rich previews API will only 404 once the response comes back from the network. We were expecting a 404 in the test which only sometimes occurred because the rich preview endpoint is not what is under test.

@talldan
Copy link
Contributor

talldan commented Jan 11, 2022

I understand but...this test isn't asserting on handling the rich previews. It's purely dealing with page creation in the Nav block. My thought was that we should have another test that explicitly checks for graceful handling of rich previews. We're only mocking what is not directly under test.

This is true, though it is unfortunately part of the flow being tested, so it makes sense to write the test correctly.

The change still goes against the purpose of response mocking, which should be to provide realistic data. Returning an empty array here is modifying the runtime behavior of Gutenberg from testing code.

I think if we're resorting to adding workarounds to wait for network conditions then we're probably not constructing the test correctly. Network condition variability on CI is very often what causes flaky tests.

I don't really see it as a workaround. We need to wait for the 404 response to happen before asserting that it happens, waitForNetworkIdle seemed the easiest way to do that, but it seems it doesn't have the intended effect.

@getdave
Copy link
Contributor Author

getdave commented Jan 11, 2022

Thanks for the feedback and discussion. It's good to challenge my assumptions here.

As this is failing multiple PRs I'd like to move towards a solution.

My question now is: what would you like to see changed for you to feel comfortable with this PR?

Is it:

  1. Removing the mock and finding a way to somehow make waiting for a 404 and an idle Network reliable and consistent?

OR

  1. Leaving the mock but returning realistic data (i.e. not an empty array) in order that we can feel comfortable the flow is adequately tested?

I'd vote for #2 as it's more likely to produce a reliable test. I'm even happy to write new tests (in a follow up PR) to explicitly test the rich previews flow if that would help.

@kevin940726 kevin940726 self-requested a review January 11, 2022 09:58
@kevin940726
Copy link
Member

I agree with @talldan here that we shouldn't use unrealistic mock data and that waitForNetworkIdle is not a workaround, but I also agree with @getdave here that it's okay to mock data as long as it's not something related to the test itself.

The ideal solution would either be:

  1. Removing the mock and finding a way to somehow make waiting for a 404 and an idle Network reliable and consistent.
  2. Keep the (realistic) mock, but also add tests for the 404 failures.

As for now, if this is blocking us, I agree to merge this as is (maybe with comments) to unblock us, but also create an issue to track this.

@getdave getdave added the [Block] Navigation Affects the Navigation Block label Jan 11, 2022
@getdave
Copy link
Contributor Author

getdave commented Jan 11, 2022

One thing I just realised is that this test is skipped so it's less urgent than I thought 😄

Still...it's good to not have disabled tests for too long.

@getdave
Copy link
Contributor Author

getdave commented Jan 11, 2022

@talldan Now using appropriate mock data here.

@talldan
Copy link
Contributor

talldan commented Jan 12, 2022

I still don't think that's right. The endpoint would normally return a payload like that, and the test doesn't ascertain that the front-end code handles the 404 from url-details. I think it'd be good to try making the test work properly without injecting incorrect data.

I had a go in #37901, it passed consistently locally, so hopefully it does the same on CI 🤞 .

BTW - has there been a discussion about whether a 404 is the correct thing for url-details to return? My take is that it seems incorrect. The url-details resource could be found, so it should return a success code.

That the server couldn't find any details about the url is unrelated, that should be relayed via the response payload.

@getdave
Copy link
Contributor Author

getdave commented Jan 12, 2022

Happy enough to close this in favour of #37901.

@getdave getdave closed this Jan 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Navigation Affects the Navigation Block [Type] Flaky Test Auto-generated flaky test report issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Flaky Test] allows pages to be created from the navigation block and their links added to menu
4 participants