Skip to content

Commit a7e0cac

Browse files
authored
Fix flaky e2e preferences test (#5044)
1 parent a57c131 commit a7e0cac

File tree

2 files changed

+7
-24
lines changed

2 files changed

+7
-24
lines changed

frontend/src/pages/preferences.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ const doneHydrating = computed(() => useHydrating())
124124
@change="handleChange"
125125
>
126126
<div>
127-
<strong>{{ flag.name }}</strong>
127+
<strong>{{ flag.name }}{{ `: ${flag.state}` }}</strong>
128128
<br />
129129
{{ flag.description }}
130130
</div>

frontend/test/playwright/e2e/preferences.spec.ts

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { type Page, test } from "@playwright/test"
1+
import { type Page, expect, test } from "@playwright/test"
22

33
import { preparePageForTests } from "~~/test/playwright/utils/navigation"
44

@@ -81,29 +81,12 @@ const toggleChecked = async (
8181
originalChecked: boolean | undefined
8282
) => {
8383
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)
9786

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()
10790
}
10891

10992
test.describe("switchable features", () => {

0 commit comments

Comments
 (0)