Skip to content

Commit

Permalink
Wait for the switch knob to render
Browse files Browse the repository at this point in the history
  • Loading branch information
obulat committed Oct 8, 2024
1 parent a8b1e9a commit 44b56eb
Showing 1 changed file with 27 additions and 4 deletions.
31 changes: 27 additions & 4 deletions frontend/test/playwright/e2e/preferences.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,29 @@ const getSwitchableInput = async (
return page.getByRole("checkbox", { name, checked }).first()
}

const toggleChecked = async (
page: Page,
name: string,
originalChecked: boolean | undefined
) => {
const featureFlag = await getSwitchableInput(page, name, originalChecked)
await featureFlag.setChecked(!originalChecked)

// If the switch knob wasn't rendered yet, wait for it to be rendered.
await page.evaluate(
([name, className]) => {
const spanClasses = document
.querySelector(`${name}`)
?.parentElement?.querySelector("span")?.className
if (!spanClasses?.includes(className)) {
setTimeout(() => {}, 1000)
}
},
// The knob is `bg-default` when the feature is off and `bg-tertiary` when the feature is on.
[name, !originalChecked ? "bg-tertiary" : "bg-default"]
)
}

test.describe("switchable features", () => {
test.beforeEach(async ({ page }) => {
await preparePageForTests(page, "xl")
Expand All @@ -86,8 +109,8 @@ test.describe("switchable features", () => {

test(`can switch ${name} from ${defaultState}`, async ({ page }) => {
await page.goto(`/preferences`)
const featureFlag = await getSwitchableInput(page, name, checked)
await featureFlag.setChecked(!checked)

await toggleChecked(page, name, checked)

await expectCheckboxState(page, name, !checked)
})
Expand All @@ -96,9 +119,9 @@ test.describe("switchable features", () => {
page,
}) => {
await page.goto(`/preferences`)
const featureFlag = await getSwitchableInput(page, name, checked)

await featureFlag.setChecked(!checked)
await toggleChecked(page, name, checked)

// Ensure the feature flag is updated
await expectCheckboxState(page, name, !checked)

Expand Down

0 comments on commit 44b56eb

Please sign in to comment.