1
1
import { expect , test } from "@playwright/test" ;
2
2
import { camelCase } from "lodash" ;
3
- import { PageProps } from "tests/e2e/playwrightUtils" ;
4
3
import {
5
4
clickAccordionWithTitle ,
6
5
clickLastPaginationPage ,
@@ -19,6 +18,7 @@ import {
19
18
toggleMobileSearchFilters ,
20
19
validateTopLevelAndNestedSelectedFilterCounts ,
21
20
waitForAnyURLChange ,
21
+ waitForFilterOptions ,
22
22
waitForSearchResultsInitialLoad ,
23
23
waitForUrl ,
24
24
waitForURLContainsQueryParam ,
@@ -54,13 +54,15 @@ test.describe("Search page tests", () => {
54
54
"category-agriculture" : "agriculture" ,
55
55
} ;
56
56
57
- await waitForSearchResultsInitialLoad ( page ) ;
58
- await selectSortBy ( page , "agencyDesc" ) ;
59
- await expectSortBy ( page , "agencyDesc" ) ;
60
-
61
57
if ( project . name . match ( / [ M m ] o b i l e / ) ) {
62
58
await toggleMobileSearchFilters ( page ) ;
63
59
}
60
+ await Promise . all ( [
61
+ waitForSearchResultsInitialLoad ( page ) ,
62
+ waitForFilterOptions ( page , "agency" ) ,
63
+ ] ) ;
64
+ await selectSortBy ( page , "agencyDesc" ) ;
65
+ await expectSortBy ( page , "agencyDesc" ) ;
64
66
65
67
await fillSearchInputAndSubmit ( searchTerm , page ) ;
66
68
@@ -139,7 +141,10 @@ test.describe("Search page tests", () => {
139
141
await toggleCheckboxes ( page , statusCheckboxes , "status" ) ;
140
142
141
143
// Wait for the page to reload
142
- await waitForSearchResultsInitialLoad ( page ) ;
144
+ await Promise . all ( [
145
+ waitForSearchResultsInitialLoad ( page ) ,
146
+ waitForFilterOptions ( page , "agency" ) ,
147
+ ] ) ;
143
148
144
149
// Verify that page 1 is highlighted
145
150
currentPageButton = page
@@ -153,9 +158,17 @@ test.describe("Search page tests", () => {
153
158
154
159
test ( "last result becomes first result when flipping sort order" , async ( {
155
160
page,
156
- } : PageProps ) => {
161
+ } , { project } ) => {
157
162
await page . goto ( "/search" ) ;
158
- await waitForSearchResultsInitialLoad ( page ) ;
163
+
164
+ if ( project . name . match ( / [ M m ] o b i l e / ) ) {
165
+ await toggleMobileSearchFilters ( page ) ;
166
+ }
167
+
168
+ await Promise . all ( [
169
+ waitForSearchResultsInitialLoad ( page ) ,
170
+ waitForFilterOptions ( page , "agency" ) ,
171
+ ] ) ;
159
172
await selectSortBy ( page , "opportunityTitleDesc" ) ;
160
173
161
174
await clickLastPaginationPage ( page ) ;
@@ -213,13 +226,17 @@ test.describe("Search page tests", () => {
213
226
// load search page
214
227
await page . goto ( "/search" ) ;
215
228
216
- const initialSearchResultsCount =
217
- await getNumberOfOpportunitySearchResults ( page ) ;
218
-
219
229
// open accordion for filter type
220
230
if ( project . name . match ( / [ M m ] o b i l e / ) ) {
221
231
await toggleMobileSearchFilters ( page ) ;
222
232
}
233
+ await Promise . all ( [
234
+ waitForSearchResultsInitialLoad ( page ) ,
235
+ waitForFilterOptions ( page , "agency" ) ,
236
+ ] ) ;
237
+
238
+ const initialSearchResultsCount =
239
+ await getNumberOfOpportunitySearchResults ( page ) ;
223
240
224
241
await clickAccordionWithTitle ( page , filterType ) ;
225
242
@@ -301,13 +318,17 @@ test.describe("Search page tests", () => {
301
318
302
319
await page . goto ( "/search" ) ;
303
320
304
- const initialSearchResultsCount =
305
- await getNumberOfOpportunitySearchResults ( page ) ;
306
-
307
321
// open accordion for filter type
308
322
if ( project . name . match ( / [ M m ] o b i l e / ) ) {
309
323
await toggleMobileSearchFilters ( page ) ;
310
324
}
325
+ await Promise . all ( [
326
+ waitForSearchResultsInitialLoad ( page ) ,
327
+ waitForFilterOptions ( page , "agency" ) ,
328
+ ] ) ;
329
+
330
+ const initialSearchResultsCount =
331
+ await getNumberOfOpportunitySearchResults ( page ) ;
311
332
312
333
await clickAccordionWithTitle ( page , "Agency" ) ;
313
334
0 commit comments