Skip to content

Commit 9afde23

Browse files
committed
e2e tests
1 parent a59f6b4 commit 9afde23

3 files changed

Lines changed: 60 additions & 8 deletions

File tree

server/frontend/src/components/Buckets/FilterBar.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
activeState === tab.key ? 'btn-primary' : 'btn-default',
1111
]"
1212
:disabled="disabled"
13+
:data-testid="tab.key"
1314
@click="setStatus(tab.key)"
1415
>
1516
{{ tab.label }}
@@ -25,6 +26,7 @@
2526
type="text"
2627
class="form-control"
2728
placeholder="Domain filter…"
29+
data-testid="domain-input"
2830
:disabled="disabled"
2931
@change="onDomainChange"
3032
@keyup.enter="onDomainChange"
@@ -33,6 +35,8 @@
3335
<button
3436
class="btn btn-default btn-sm"
3537
type="button"
38+
aria-label="Search"
39+
data-testid="domain-search-btn"
3640
:disabled="disabled"
3741
@click="onDomainSearch"
3842
>

tests/e2e/page_objects/buckets.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ def __init__(self, page, live_server):
1010
super().__init__(page, live_server)
1111

1212
self.bucket_items = self.page.get_by_test_id("bucket-row")
13-
self.show_triaged_toggle = self.page.get_by_test_id("show-triaged-toggle")
13+
self.show_all = self.page.get_by_test_id("all")
14+
self.show_needs_triage = self.page.get_by_test_id("needs_triage")
15+
self.show_triaged = self.page.get_by_test_id("triaged")
16+
self.domain_input = self.page.get_by_test_id("domain-input")
17+
self.domain_search_btn = self.page.get_by_test_id("domain-search-btn")
1418

1519
def bucket_count(self):
1620
"""Return the number of buckets displayed on the page."""
@@ -20,10 +24,30 @@ def wait_for_buckets_to_load(self):
2024
"""Wait for bucket rows to appear on the page."""
2125
self.bucket_items.first.wait_for(state="visible")
2226

23-
def click_show_triaged_toggle(self):
24-
"""Toggle between Show Triaged / Hide Triaged."""
27+
def click_on_state(self, locator):
2528
with self.page.expect_response(
2629
lambda r: "/reportmanager/rest/buckets/" in r.url
2730
and r.request.method == "GET"
2831
):
29-
self.show_triaged_toggle.click()
32+
locator.click()
33+
34+
def click_show_all(self):
35+
"""Click All button to show all buckets including triaged."""
36+
self.click_on_state(self.show_all)
37+
38+
def click_needs_triage(self):
39+
"""Click Needs Triage to hide triaged buckets."""
40+
self.click_on_state(self.show_needs_triage)
41+
42+
def click_triaged(self):
43+
"""Click Triaged to show only triaged buckets."""
44+
self.click_on_state(self.show_triaged)
45+
46+
def search_domain(self, domain):
47+
"""Type a domain into the filter input and click Search."""
48+
self.domain_input.fill(domain)
49+
with self.page.expect_response(
50+
lambda r: "/reportmanager/rest/buckets/" in r.url
51+
and r.request.method == "GET"
52+
):
53+
self.domain_search_btn.click()

tests/e2e/test_buckets.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,36 @@ def test_buckets_list_show_hide_triaged(page, live_server, logged_in, e2e_data):
2828
untriaged_count = e2e_data["bucket_count"] - e2e_data["triaged_count"]
2929
assert buckets_page.bucket_count() == untriaged_count
3030

31-
# Show Triaged - all buckets visible
32-
buckets_page.click_show_triaged_toggle()
31+
# Click to show buckets in All states
32+
buckets_page.click_show_all()
3333
buckets_page.wait_for_buckets_to_load()
3434
assert buckets_page.bucket_count() == e2e_data["bucket_count"]
3535

36-
# Hide Triaged again
37-
buckets_page.click_show_triaged_toggle()
36+
# Back to Needs Triage - triaged buckets hidden again
37+
buckets_page.click_needs_triage()
3838
buckets_page.wait_for_buckets_to_load()
3939
assert buckets_page.bucket_count() == untriaged_count
40+
41+
42+
@pytest.mark.ui
43+
@pytest.mark.django_db(transaction=True)
44+
def test_buckets_list_triaged_tab(page, live_server, logged_in, e2e_data):
45+
buckets_page = BucketsPage(page, live_server)
46+
buckets_page.navigate()
47+
buckets_page.wait_for_buckets_to_load()
48+
49+
buckets_page.click_triaged()
50+
buckets_page.wait_for_buckets_to_load()
51+
assert buckets_page.bucket_count() == e2e_data["triaged_count"]
52+
53+
54+
@pytest.mark.ui
55+
@pytest.mark.django_db(transaction=True)
56+
def test_buckets_list_domain_filter(page, live_server, logged_in, e2e_data):
57+
buckets_page = BucketsPage(page, live_server)
58+
buckets_page.navigate()
59+
buckets_page.wait_for_buckets_to_load()
60+
61+
buckets_page.search_domain("vicroads.vic.gov.au")
62+
buckets_page.wait_for_buckets_to_load()
63+
assert buckets_page.bucket_count() == 3

0 commit comments

Comments
 (0)