From 77e1525402d29ca7cdcebdc39a4a747cdabfc09f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20I=C3=9Fbr=C3=BCcker?= Date: Sun, 24 Mar 2024 22:07:11 +0100 Subject: [PATCH] Fix flaky E2E tests --- .../e2e/e2e_test_bookmark_page_bulk_edit.py | 20 ++++++++++++++++--- bookmarks/e2e/helpers.py | 3 +++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/bookmarks/e2e/e2e_test_bookmark_page_bulk_edit.py b/bookmarks/e2e/e2e_test_bookmark_page_bulk_edit.py index 1706cddb..ac20326a 100644 --- a/bookmarks/e2e/e2e_test_bookmark_page_bulk_edit.py +++ b/bookmarks/e2e/e2e_test_bookmark_page_bulk_edit.py @@ -39,6 +39,7 @@ def test_active_bookmarks_bulk_select_across(self): with sync_playwright() as p: self.open(reverse("bookmarks:index"), p) + bookmark_list = self.locate_bookmark_list() self.locate_bulk_edit_toggle().click() self.locate_bulk_edit_select_all().click() self.locate_bulk_edit_select_across().click() @@ -46,6 +47,8 @@ def test_active_bookmarks_bulk_select_across(self): self.select_bulk_action("Delete") self.locate_bulk_edit_bar().get_by_text("Execute").click() self.locate_bulk_edit_bar().get_by_text("Confirm").click() + # Wait until bookmark list is updated (old reference becomes invisible) + expect(bookmark_list).not_to_be_visible() self.assertEqual( 0, @@ -74,6 +77,7 @@ def test_archived_bookmarks_bulk_select_across(self): with sync_playwright() as p: self.open(reverse("bookmarks:archived"), p) + bookmark_list = self.locate_bookmark_list() self.locate_bulk_edit_toggle().click() self.locate_bulk_edit_select_all().click() self.locate_bulk_edit_select_across().click() @@ -81,6 +85,8 @@ def test_archived_bookmarks_bulk_select_across(self): self.select_bulk_action("Delete") self.locate_bulk_edit_bar().get_by_text("Execute").click() self.locate_bulk_edit_bar().get_by_text("Confirm").click() + # Wait until bookmark list is updated (old reference becomes invisible) + expect(bookmark_list).not_to_be_visible() self.assertEqual( 50, @@ -109,6 +115,7 @@ def test_active_bookmarks_bulk_select_across_respects_query(self): with sync_playwright() as p: self.open(reverse("bookmarks:index") + "?q=foo", p) + bookmark_list = self.locate_bookmark_list() self.locate_bulk_edit_toggle().click() self.locate_bulk_edit_select_all().click() self.locate_bulk_edit_select_across().click() @@ -116,6 +123,8 @@ def test_active_bookmarks_bulk_select_across_respects_query(self): self.select_bulk_action("Delete") self.locate_bulk_edit_bar().get_by_text("Execute").click() self.locate_bulk_edit_bar().get_by_text("Confirm").click() + # Wait until bookmark list is updated (old reference becomes invisible) + expect(bookmark_list).not_to_be_visible() self.assertEqual( 50, @@ -144,6 +153,7 @@ def test_archived_bookmarks_bulk_select_across_respects_query(self): with sync_playwright() as p: self.open(reverse("bookmarks:archived") + "?q=foo", p) + bookmark_list = self.locate_bookmark_list() self.locate_bulk_edit_toggle().click() self.locate_bulk_edit_select_all().click() self.locate_bulk_edit_select_across().click() @@ -151,6 +161,8 @@ def test_archived_bookmarks_bulk_select_across_respects_query(self): self.select_bulk_action("Delete") self.locate_bulk_edit_bar().get_by_text("Execute").click() self.locate_bulk_edit_bar().get_by_text("Confirm").click() + # Wait until bookmark list is updated (old reference becomes invisible) + expect(bookmark_list).not_to_be_visible() self.assertEqual( 50, @@ -269,14 +281,13 @@ def test_execute_resets_all_checkboxes(self): url = reverse("bookmarks:index") page = self.open(url, p) + bookmark_list = self.locate_bookmark_list() + # Select all bookmarks, enable select across self.locate_bulk_edit_toggle().click() self.locate_bulk_edit_select_all().click() self.locate_bulk_edit_select_across().click() - # Get reference for bookmark list - bookmark_list = page.locator("ul[ld-bookmark-list]") - # Execute bulk action self.select_bulk_action("Mark as unread") self.locate_bulk_edit_bar().get_by_text("Execute").click() @@ -302,6 +313,7 @@ def test_update_select_across_bookmark_count(self): url = reverse("bookmarks:index") self.open(url, p) + bookmark_list = self.locate_bookmark_list() self.locate_bulk_edit_toggle().click() self.locate_bulk_edit_select_all().click() @@ -312,6 +324,8 @@ def test_update_select_across_bookmark_count(self): self.select_bulk_action("Delete") self.locate_bulk_edit_bar().get_by_text("Execute").click() self.locate_bulk_edit_bar().get_by_text("Confirm").click() + # Wait until bookmark list is updated (old reference becomes invisible) + expect(bookmark_list).not_to_be_visible() expect(self.locate_bulk_edit_select_all()).not_to_be_checked() self.locate_bulk_edit_select_all().click() diff --git a/bookmarks/e2e/helpers.py b/bookmarks/e2e/helpers.py index a6cbcd51..4aad225e 100644 --- a/bookmarks/e2e/helpers.py +++ b/bookmarks/e2e/helpers.py @@ -38,6 +38,9 @@ def on_load(self): def assertReloads(self, count: int): self.assertEqual(self.num_loads, count) + def locate_bookmark_list(self): + return self.page.locator("ul[ld-bookmark-list]") + def locate_bookmark(self, title: str): bookmark_tags = self.page.locator("li[ld-bookmark-item]") return bookmark_tags.filter(has_text=title)