From 0a5dadd11b67f33a2afeaf07f82d7d37d0ce22c4 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Tue, 29 Jul 2025 13:40:43 +0000 Subject: [PATCH 1/2] fix: e2e test fixes --- site/e2e/helpers.ts | 46 +++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/site/e2e/helpers.ts b/site/e2e/helpers.ts index 768a7d477f992..5b08f1de953cb 100644 --- a/site/e2e/helpers.ts +++ b/site/e2e/helpers.ts @@ -127,6 +127,10 @@ export const createWorkspace = async ( const name = randomName(); await page.getByLabel("name").fill(name); + if (buildParameters.length > 0) { + await page.waitForSelector("form", { state: "visible" }); + } + await fillParameters(page, richParameters, buildParameters); if (useExternalAuth) { @@ -898,28 +902,24 @@ const fillParameters = async ( ); } - const parameterLabel = await page.waitForSelector( - `[data-testid='parameter-field-${richParameter.name}']`, - { state: "visible" }, - ); + // Use modern locator approach instead of waitForSelector + const parameterLabel = page.getByTestId(`parameter-field-${richParameter.name}`); + await expect(parameterLabel).toBeVisible(); if (richParameter.type === "bool") { - const parameterField = await parameterLabel.waitForSelector( - `[data-testid='parameter-field-bool'] .MuiRadio-root input[value='${buildParameter.value}']`, - ); + const parameterField = parameterLabel.getByTestId('parameter-field-bool') + .locator(`.MuiRadio-root input[value='${buildParameter.value}']`); await parameterField.click(); } else if (richParameter.options.length > 0) { - const parameterField = await parameterLabel.waitForSelector( - `[data-testid='parameter-field-options'] .MuiRadio-root input[value='${buildParameter.value}']`, - ); + const parameterField = parameterLabel.getByTestId('parameter-field-options') + .locator(`.MuiRadio-root input[value='${buildParameter.value}']`); await parameterField.click(); } else if (richParameter.type === "list(string)") { throw new Error("not implemented yet"); // FIXME } else { // text or number - const parameterField = await parameterLabel.waitForSelector( - "[data-testid='parameter-field-text'] input", - ); + const parameterField = parameterLabel.getByTestId('parameter-field-text') + .locator('input'); await parameterField.fill(buildParameter.value); } } @@ -1217,22 +1217,36 @@ export const disableDynamicParameters = async ( waitUntil: "domcontentloaded", }); + await page.waitForSelector("form", { state: "visible" }); + // Find and uncheck the "Enable dynamic parameters" checkbox const dynamicParamsCheckbox = page.getByRole("checkbox", { name: /Enable dynamic parameters for workspace creation/, }); + await dynamicParamsCheckbox.waitFor({ state: "visible" }); + // If the checkbox is checked, uncheck it if (await dynamicParamsCheckbox.isChecked()) { await dynamicParamsCheckbox.click(); } // Save the changes - await page.getByRole("button", { name: /save/i }).click(); + const saveButton = page.getByRole("button", { name: /save/i }); + await saveButton.waitFor({ state: "visible" }); + await saveButton.click(); // Wait for the success message or page to update - await page.waitForSelector("text=Template updated successfully", { + await page + .locator( + "[role='alert']:has-text('Template updated successfully')", + ) + .first() + .waitFor({ state: "visible", - timeout: 10000, + timeout: 15000, }); + + // Additional wait to ensure the changes are persisted + await page.waitForTimeout(500); }; From a358a87a934f9100a81177b97c3c4ada4a524c09 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Tue, 29 Jul 2025 13:51:02 +0000 Subject: [PATCH 2/2] fix: fix format --- site/e2e/helpers.ts | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/site/e2e/helpers.ts b/site/e2e/helpers.ts index 5b08f1de953cb..e771adeab3813 100644 --- a/site/e2e/helpers.ts +++ b/site/e2e/helpers.ts @@ -903,23 +903,28 @@ const fillParameters = async ( } // Use modern locator approach instead of waitForSelector - const parameterLabel = page.getByTestId(`parameter-field-${richParameter.name}`); + const parameterLabel = page.getByTestId( + `parameter-field-${richParameter.name}`, + ); await expect(parameterLabel).toBeVisible(); if (richParameter.type === "bool") { - const parameterField = parameterLabel.getByTestId('parameter-field-bool') + const parameterField = parameterLabel + .getByTestId("parameter-field-bool") .locator(`.MuiRadio-root input[value='${buildParameter.value}']`); await parameterField.click(); } else if (richParameter.options.length > 0) { - const parameterField = parameterLabel.getByTestId('parameter-field-options') + const parameterField = parameterLabel + .getByTestId("parameter-field-options") .locator(`.MuiRadio-root input[value='${buildParameter.value}']`); await parameterField.click(); } else if (richParameter.type === "list(string)") { throw new Error("not implemented yet"); // FIXME } else { // text or number - const parameterField = parameterLabel.getByTestId('parameter-field-text') - .locator('input'); + const parameterField = parameterLabel + .getByTestId("parameter-field-text") + .locator("input"); await parameterField.fill(buildParameter.value); } } @@ -1238,14 +1243,12 @@ export const disableDynamicParameters = async ( // Wait for the success message or page to update await page - .locator( - "[role='alert']:has-text('Template updated successfully')", - ) - .first() - .waitFor({ - state: "visible", - timeout: 15000, - }); + .locator("[role='alert']:has-text('Template updated successfully')") + .first() + .waitFor({ + state: "visible", + timeout: 15000, + }); // Additional wait to ensure the changes are persisted await page.waitForTimeout(500); pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy