Skip to content

Commit ca7feaa

Browse files
committed
refactor
1 parent 0b8d6d8 commit ca7feaa

File tree

3 files changed

+62
-87
lines changed

3 files changed

+62
-87
lines changed

site/e2e/helpers.ts

Lines changed: 49 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -34,46 +34,7 @@ export const createWorkspace = async (
3434
const name = randomName()
3535
await page.getByLabel("name").fill(name)
3636

37-
for (const buildParameter of buildParameters) {
38-
const richParameter = richParameters.find(
39-
(richParam) => richParam.name === buildParameter.name,
40-
)
41-
if (!richParameter) {
42-
throw new Error(
43-
"build parameter is expected to be present in rich parameter schema",
44-
)
45-
}
46-
47-
const parameterLabel = await page.waitForSelector(
48-
"[data-testid='parameter-field-" + richParameter.name + "']",
49-
{ state: "visible" },
50-
)
51-
52-
if (richParameter.type === "bool") {
53-
const parameterField = await parameterLabel.waitForSelector(
54-
"[data-testid='parameter-field-bool'] .MuiRadio-root input[value='" +
55-
buildParameter.value +
56-
"']",
57-
)
58-
await parameterField.check()
59-
} else if (richParameter.options.length > 0) {
60-
const parameterField = await parameterLabel.waitForSelector(
61-
"[data-testid='parameter-field-options'] .MuiRadio-root input[value='" +
62-
buildParameter.value +
63-
"']",
64-
)
65-
await parameterField.check()
66-
} else if (richParameter.type === "list(string)") {
67-
throw new Error("not implemented yet") // FIXME
68-
} else {
69-
// text or number
70-
const parameterField = await parameterLabel.waitForSelector(
71-
"[data-testid='parameter-field-text'] input",
72-
)
73-
await parameterField.fill(buildParameter.value)
74-
}
75-
}
76-
37+
await fillParameters(page, richParameters, buildParameters)
7738
await page.getByTestId("form-submit").click()
7839

7940
await expect(page).toHaveURL("/@admin/" + name)
@@ -216,10 +177,7 @@ export const sshIntoWorkspace = async (
216177
})
217178
}
218179

219-
export const stopWorkspace = async (
220-
page: Page,
221-
workspaceName: string,
222-
) => {
180+
export const stopWorkspace = async (page: Page, workspaceName: string) => {
223181
await page.goto("/@admin/" + workspaceName, {
224182
waitUntil: "domcontentloaded",
225183
})
@@ -249,48 +207,8 @@ export const buildWorkspaceWithParameters = async (
249207

250208
await page.getByTestId("build-parameters-button").click()
251209

252-
for (const buildParameter of buildParameters) {
253-
const richParameter = richParameters.find(
254-
(richParam) => richParam.name === buildParameter.name,
255-
)
256-
if (!richParameter) {
257-
throw new Error(
258-
"build parameter is expected to be present in rich parameter schema",
259-
)
260-
}
261-
262-
const parameterLabel = await page.waitForSelector(
263-
"[data-testid='parameter-field-" + richParameter.name + "']",
264-
{ state: "visible" },
265-
)
266-
267-
if (richParameter.type === "bool") {
268-
const parameterField = await parameterLabel.waitForSelector(
269-
"[data-testid='parameter-field-bool'] .MuiRadio-root input[value='" +
270-
buildParameter.value +
271-
"']",
272-
)
273-
await parameterField.check()
274-
} else if (richParameter.options.length > 0) {
275-
const parameterField = await parameterLabel.waitForSelector(
276-
"[data-testid='parameter-field-options'] .MuiRadio-root input[value='" +
277-
buildParameter.value +
278-
"']",
279-
)
280-
await parameterField.check()
281-
} else if (richParameter.type === "list(string)") {
282-
throw new Error("not implemented yet") // FIXME
283-
} else {
284-
// text or number
285-
const parameterField = await parameterLabel.waitForSelector(
286-
"[data-testid='parameter-field-text'] input",
287-
)
288-
await parameterField.fill(buildParameter.value)
289-
}
290-
}
291-
210+
await fillParameters(page, richParameters, buildParameters)
292211
await page.getByTestId("build-parameters-submit").click()
293-
294212
if (confirm) {
295213
await page.getByTestId("confirm-button").click()
296214
}
@@ -651,3 +569,49 @@ export const echoResponsesWithParameters = (
651569
],
652570
}
653571
}
572+
573+
export const fillParameters = async (
574+
page: Page,
575+
richParameters: RichParameter[] = [],
576+
buildParameters: WorkspaceBuildParameter[] = [],
577+
) => {
578+
for (const buildParameter of buildParameters) {
579+
const richParameter = richParameters.find(
580+
(richParam) => richParam.name === buildParameter.name,
581+
)
582+
if (!richParameter) {
583+
throw new Error(
584+
"build parameter is expected to be present in rich parameter schema",
585+
)
586+
}
587+
588+
const parameterLabel = await page.waitForSelector(
589+
"[data-testid='parameter-field-" + richParameter.name + "']",
590+
{ state: "visible" },
591+
)
592+
593+
if (richParameter.type === "bool") {
594+
const parameterField = await parameterLabel.waitForSelector(
595+
"[data-testid='parameter-field-bool'] .MuiRadio-root input[value='" +
596+
buildParameter.value +
597+
"']",
598+
)
599+
await parameterField.check()
600+
} else if (richParameter.options.length > 0) {
601+
const parameterField = await parameterLabel.waitForSelector(
602+
"[data-testid='parameter-field-options'] .MuiRadio-root input[value='" +
603+
buildParameter.value +
604+
"']",
605+
)
606+
await parameterField.check()
607+
} else if (richParameter.type === "list(string)") {
608+
throw new Error("not implemented yet") // FIXME
609+
} else {
610+
// text or number
611+
const parameterField = await parameterLabel.waitForSelector(
612+
"[data-testid='parameter-field-text'] input",
613+
)
614+
await parameterField.fill(buildParameter.value)
615+
}
616+
}
617+
}

site/e2e/tests/restartWorkspace.spec.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,13 @@ test("restart workspace with ephemeral parameters", async ({ page }) => {
2929
{ name: firstBuildOption.name, value: "AAAAA" },
3030
{ name: secondBuildOption.name, value: "true" },
3131
]
32-
await buildWorkspaceWithParameters(page, workspaceName, richParameters, buildParameters, true)
32+
await buildWorkspaceWithParameters(
33+
page,
34+
workspaceName,
35+
richParameters,
36+
buildParameters,
37+
true,
38+
)
3339

3440
// FIXME: verify that build options are default (not selected).
3541
// It is the opposite now until the site logic is corrected.

site/e2e/tests/startWorkspace.spec.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@ test("start workspace with ephemeral parameters", async ({ page }) => {
3434
{ name: secondBuildOption.name, value: "true" },
3535
]
3636

37-
await buildWorkspaceWithParameters(page, workspaceName, richParameters, buildParameters)
37+
await buildWorkspaceWithParameters(
38+
page,
39+
workspaceName,
40+
richParameters,
41+
buildParameters,
42+
)
3843

3944
// FIXME: verify that build options are default (not selected).
4045
// It is the opposite now until the site logic is corrected.

0 commit comments

Comments
 (0)