Skip to content

Commit b7fe39d

Browse files
committed
Update tests
1 parent bd4ac82 commit b7fe39d

File tree

2 files changed

+108
-2
lines changed

2 files changed

+108
-2
lines changed

site/e2e/helpers.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ export const createWorkspace = async (
3131
await page.goto("/templates/" + templateName + "/workspace", {
3232
waitUntil: "networkidle",
3333
})
34+
await expect(page).toHaveURL("/templates/" + templateName + "/workspace")
35+
3436
const name = randomName()
3537
await page.getByLabel("name").fill(name)
3638

@@ -689,3 +691,27 @@ export const updateWorkspace = async (
689691
},
690692
)
691693
}
694+
695+
export const updateWorkspaceParameters = async (
696+
page: Page,
697+
workspaceName: string,
698+
richParameters: RichParameter[] = [],
699+
buildParameters: WorkspaceBuildParameter[] = [],
700+
) => {
701+
await page.goto("/@admin/" + workspaceName + "/settings/parameters", {
702+
waitUntil: "domcontentloaded",
703+
})
704+
await expect(page).toHaveURL(
705+
"/@admin/" + workspaceName + "/settings/parameters",
706+
)
707+
708+
await fillParameters(page, richParameters, buildParameters)
709+
await page.getByTestId("form-submit").click()
710+
711+
await page.waitForSelector(
712+
"span[data-testid='build-status'] >> text=Running",
713+
{
714+
state: "visible",
715+
},
716+
)
717+
}

site/e2e/tests/updateWorkspace.spec.ts

Lines changed: 82 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,17 @@ import {
55
echoResponsesWithParameters,
66
updateTemplate,
77
updateWorkspace,
8+
updateWorkspaceParameters,
89
verifyParameters,
910
} from "../helpers"
1011

11-
import { fifthParameter, firstParameter, secondParameter } from "../parameters"
12+
import {
13+
fifthParameter,
14+
firstParameter,
15+
secondParameter,
16+
sixthParameter,
17+
secondBuildOption,
18+
} from "../parameters"
1219
import { RichParameter } from "../provisionerGenerated"
1320

1421
test("update workspace, new optional, immutable parameter added", async ({
@@ -41,10 +48,83 @@ test("update workspace, new optional, immutable parameter added", async ({
4148
{ name: fifthParameter.name, value: fifthParameter.options[0].value },
4249
])
4350

44-
// Verify that parameter values are default.
51+
// Verify parameter values.
4552
await verifyParameters(page, workspaceName, updatedRichParameters, [
4653
{ name: firstParameter.name, value: firstParameter.defaultValue },
4754
{ name: secondParameter.name, value: secondParameter.defaultValue },
4855
{ name: fifthParameter.name, value: fifthParameter.options[0].value },
4956
])
5057
})
58+
59+
test("update workspace, new required, mutable parameter added", async ({
60+
page,
61+
}) => {
62+
const richParameters: RichParameter[] = [firstParameter, secondParameter]
63+
const template = await createTemplate(
64+
page,
65+
echoResponsesWithParameters(richParameters),
66+
)
67+
68+
const workspaceName = await createWorkspace(page, template)
69+
70+
// Verify that parameter values are default.
71+
await verifyParameters(page, workspaceName, richParameters, [
72+
{ name: firstParameter.name, value: firstParameter.defaultValue },
73+
{ name: secondParameter.name, value: secondParameter.defaultValue },
74+
])
75+
76+
// Push updated template.
77+
const updatedRichParameters = [...richParameters, sixthParameter]
78+
await updateTemplate(
79+
page,
80+
template,
81+
echoResponsesWithParameters(updatedRichParameters),
82+
)
83+
84+
// Now, update the workspace, and provide the parameter value.
85+
const buildParameters = [{ name: sixthParameter.name, value: "99" }]
86+
await updateWorkspace(
87+
page,
88+
workspaceName,
89+
updatedRichParameters,
90+
buildParameters,
91+
)
92+
93+
// Verify parameter values.
94+
await verifyParameters(page, workspaceName, updatedRichParameters, [
95+
{ name: firstParameter.name, value: firstParameter.defaultValue },
96+
{ name: secondParameter.name, value: secondParameter.defaultValue },
97+
...buildParameters,
98+
])
99+
})
100+
101+
test("update workspace with ephemeral parameter enabled", async ({ page }) => {
102+
const richParameters: RichParameter[] = [firstParameter, secondBuildOption]
103+
const template = await createTemplate(
104+
page,
105+
echoResponsesWithParameters(richParameters),
106+
)
107+
108+
const workspaceName = await createWorkspace(page, template)
109+
110+
// Verify that parameter values are default.
111+
await verifyParameters(page, workspaceName, richParameters, [
112+
{ name: firstParameter.name, value: firstParameter.defaultValue },
113+
{ name: secondBuildOption.name, value: secondBuildOption.defaultValue },
114+
])
115+
116+
// Now, update the workspace, and select the value for ephemeral parameter.
117+
const buildParameters = [{ name: secondBuildOption.name, value: "true" }]
118+
await updateWorkspaceParameters(
119+
page,
120+
workspaceName,
121+
richParameters,
122+
buildParameters,
123+
)
124+
125+
// Verify that parameter values are default.
126+
await verifyParameters(page, workspaceName, richParameters, [
127+
{ name: firstParameter.name, value: firstParameter.defaultValue },
128+
{ name: secondBuildOption.name, value: secondBuildOption.defaultValue },
129+
])
130+
})

0 commit comments

Comments
 (0)