@@ -136,4 +136,53 @@ test.describe("Practitioner show", () => {
136136 await expect ( page . getByTestId ( "practitioner-name" ) ) . toContainText ( practitioner . name )
137137 await expect ( page . getByTestId ( "practitioner-npi" ) ) . toContainText ( `NPI: ${ practitioner . npi } ` )
138138 } )
139- } )
139+ } )
140+
141+ test . describe ( "sort Practitioners" , ( ) => {
142+ test ( "sort dropdown is visible on listing page" , async ( { page } ) => {
143+ await page . goto ( "/practitioners" )
144+
145+ await expect ( page . locator ( ".ds-c-dropdown__button" ) ) . toBeVisible ( )
146+ await expect ( page . locator ( ".ds-c-dropdown__label-text" ) ) . toHaveText ( "First Name (A-Z)" )
147+ } )
148+
149+ test ( "sort listing results by last name" , async ( { page } ) => {
150+ await page . goto ( "/practitioners" )
151+
152+ await page . locator ( ".ds-c-dropdown__button" ) . click ( )
153+ await page . getByRole ( "option" , { name : "Last Name (A-Z)" } ) . click ( )
154+
155+ await expect ( page ) . toHaveURL ( / s o r t = l a s t - n a m e - a s c / )
156+ await expect ( page . locator ( ".ds-c-dropdown__label-text" ) ) . toHaveText ( "Last Name (A-Z)" )
157+ } )
158+
159+ test ( "sort persists through pagination" , async ( { page } ) => {
160+ await page . goto ( "/practitioners" )
161+
162+ await page . locator ( ".ds-c-dropdown__button" ) . click ( )
163+ await page . getByRole ( "option" , { name : "Last Name (Z-A)" } ) . click ( )
164+ await expect ( page ) . toHaveURL ( / s o r t = l a s t - n a m e - d e s c / )
165+
166+ await page . getByLabel ( "Next Page" ) . first ( ) . click ( )
167+
168+ await expect ( page ) . toHaveURL ( / p a g e = 2 / )
169+ await expect ( page ) . toHaveURL ( / s o r t = l a s t - n a m e - d e s c / )
170+ await expect ( page . locator ( ".ds-c-dropdown__label-text" ) ) . toHaveText ( "Last Name (Z-A)" )
171+ } )
172+
173+ test ( "sort search results" , async ( { page } ) => {
174+ await page . goto ( "/practitioners/search" )
175+
176+ await page . getByRole ( "textbox" , { name : "Name or Identifier (NPI" } ) . fill ( "AAA" )
177+ await page . getByRole ( "button" , { name : "Search" } ) . click ( )
178+
179+ await expect ( page . locator ( "[data-testid='searchresults']" ) . getByRole ( "listitem" ) . first ( ) ) . toBeVisible ( )
180+
181+ await page . locator ( ".ds-c-dropdown__button" ) . click ( )
182+ await page . getByRole ( "option" , { name : "Last Name (A-Z)" } ) . click ( )
183+
184+ await expect ( page ) . toHaveURL ( / q u e r y = A A A / )
185+ await expect ( page ) . toHaveURL ( / s o r t = l a s t - n a m e - a s c / )
186+ await expect ( page . locator ( ".ds-c-dropdown__label-text" ) ) . toHaveText ( "Last Name (A-Z)" )
187+ } )
188+ } )
0 commit comments