Skip to content

Commit 9e57076

Browse files
added sorting tests
1 parent d36c4c1 commit 9e57076

File tree

2 files changed

+99
-1
lines changed

2 files changed

+99
-1
lines changed

playwright/tests/organizations/organizations.spec.ts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,3 +151,52 @@ test.describe("Organization show", () => {
151151
await expect(banner.getByText(`NPI: ${organization.npi}`)).toBeVisible()
152152
})
153153
})
154+
155+
test.describe("sort Organizations", () => {
156+
test("sort dropdown is visible on listing page", async ({ page }) => {
157+
await page.goto("/organizations")
158+
159+
await expect(page.locator(".ds-c-dropdown__button")).toBeVisible()
160+
await expect(page.locator(".ds-c-dropdown__label-text")).toHaveText("Name (A-Z)")
161+
})
162+
163+
test("sort listing results by name descending", async ({ page }) => {
164+
await page.goto("/organizations")
165+
166+
await page.locator(".ds-c-dropdown__button").click()
167+
await page.getByRole("option", { name: "Name (Z-A)" }).click()
168+
169+
await expect(page).toHaveURL(/sort=name-desc/)
170+
await expect(page.locator(".ds-c-dropdown__label-text")).toHaveText("Name (Z-A)")
171+
})
172+
173+
test("sort persists through pagination", async ({ page }) => {
174+
await page.goto("/organizations")
175+
176+
await page.locator(".ds-c-dropdown__button").click()
177+
await page.getByRole("option", { name: "Name (Z-A)" }).click()
178+
await expect(page).toHaveURL(/sort=name-desc/)
179+
180+
await page.getByLabel("Next Page").first().click()
181+
182+
await expect(page).toHaveURL(/page=2/)
183+
await expect(page).toHaveURL(/sort=name-desc/)
184+
await expect(page.locator(".ds-c-dropdown__label-text")).toHaveText("Name (Z-A)")
185+
})
186+
187+
test("sort search results", async ({ page }) => {
188+
await page.goto("/organizations/search")
189+
190+
await page.getByRole("textbox", { name: "Name or Identifier (NPI, EIN" }).fill("Test")
191+
await page.getByRole("button", { name: "Search" }).click()
192+
193+
await expect(page.locator("[data-testid='searchresults']").getByRole("listitem").first()).toBeVisible()
194+
195+
await page.locator(".ds-c-dropdown__button").click()
196+
await page.getByRole("option", { name: "Name (Z-A)" }).click()
197+
198+
await expect(page).toHaveURL(/query=Test/)
199+
await expect(page).toHaveURL(/sort=name-desc/)
200+
await expect(page.locator(".ds-c-dropdown__label-text")).toHaveText("Name (Z-A)")
201+
})
202+
})

playwright/tests/practitioners/practitioners.spec.ts

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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(/sort=last-name-asc/)
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(/sort=last-name-desc/)
165+
166+
await page.getByLabel("Next Page").first().click()
167+
168+
await expect(page).toHaveURL(/page=2/)
169+
await expect(page).toHaveURL(/sort=last-name-desc/)
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(/query=AAA/)
185+
await expect(page).toHaveURL(/sort=last-name-asc/)
186+
await expect(page.locator(".ds-c-dropdown__label-text")).toHaveText("Last Name (A-Z)")
187+
})
188+
})

0 commit comments

Comments
 (0)