|
1 |
| -import { type Page, test } from "@playwright/test" |
| 1 | +import { type Page, expect, test } from "@playwright/test" |
2 | 2 |
|
3 | 3 | import { preparePageForTests } from "~~/test/playwright/utils/navigation"
|
4 | 4 |
|
@@ -81,29 +81,12 @@ const toggleChecked = async (
|
81 | 81 | originalChecked: boolean | undefined
|
82 | 82 | ) => {
|
83 | 83 | const featureFlag = await getSwitchableInput(page, name, originalChecked)
|
84 |
| - await featureFlag.setChecked(!originalChecked) |
85 |
| - |
86 |
| - // If the switch knob wasn't rendered yet, wait for it to be rendered. |
87 |
| - // The knob's color is `bg-default` when off and `bg-tertiary` when on. |
88 |
| - await page.evaluate( |
89 |
| - async ([name, className]) => { |
90 |
| - const getKnobClasses = () => { |
91 |
| - return ( |
92 |
| - document |
93 |
| - .getElementById(`#${name}`) |
94 |
| - ?.parentElement?.querySelector("span")?.className ?? "" |
95 |
| - ) |
96 |
| - } |
| 84 | + const expectedChecked = !originalChecked |
| 85 | + await featureFlag.setChecked(expectedChecked) |
97 | 86 |
|
98 |
| - for (const waitTime of [100, 200, 500]) { |
99 |
| - if (getKnobClasses().includes(className)) { |
100 |
| - return |
101 |
| - } |
102 |
| - await new Promise((resolve) => setTimeout(resolve, waitTime)) |
103 |
| - } |
104 |
| - }, |
105 |
| - [name, !originalChecked ? "bg-tertiary" : "bg-default"] as const |
106 |
| - ) |
| 87 | + const expectedText = `${name}: ${expectedChecked ? "on" : "off"}` |
| 88 | + |
| 89 | + await expect(page.getByText(expectedText).first()).toBeVisible() |
107 | 90 | }
|
108 | 91 |
|
109 | 92 | test.describe("switchable features", () => {
|
|
0 commit comments