From 782a1052c804fec0cf185e9ff31fc2161ece50ee Mon Sep 17 00:00:00 2001 From: Ethan <39577870+ethanndickson@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:46:19 +1100 Subject: [PATCH] test: use toHaveValue() to avoid flaky parameter verification (#20990) ## Problem The test `create workspace with default and required parameters` was flaky because `verifyParameters` in `site/e2e/helpers.ts` didn't wait for input values to be populated before asserting. After PR #20710 removed classic parameters, the form now uses dynamic parameters loaded asynchronously via WebSocket. The input field can be visible before its value is populated. Closes https://github.com/coder/internal/issues/1154 ## Fix Replace immediate read + assertion: ```typescript const value = await parameterField.inputValue(); expect(value).toEqual(buildParameter.value); ``` With Playwright's auto-retrying assertion: ```typescript await expect(parameterField).toHaveValue(buildParameter.value); ``` From [Playwright docs for `inputValue()`](https://playwright.dev/docs/api/class-locator#locator-input-value): > **NOTE** If you need to assert input value, prefer `expect(locator).toHaveValue(value[, options])` to avoid flakiness. See assertions guide for more details. --- This PR was fully generated by [mux](https://github.com/coder/mux), and reviewed by a human. --- site/e2e/helpers.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/site/e2e/helpers.ts b/site/e2e/helpers.ts index b1df166f96..cda6966a56 100644 --- a/site/e2e/helpers.ts +++ b/site/e2e/helpers.ts @@ -207,8 +207,7 @@ export const verifyParameters = async ( case "number": { const parameterField = parameterLabel.locator("input"); - const value = await parameterField.inputValue(); - expect(value).toEqual(buildParameter.value); + await expect(parameterField).toHaveValue(buildParameter.value); } break; default: