Skip to content

Commit 679e205

Browse files
committed
WIP
1 parent 135b1e4 commit 679e205

File tree

3 files changed

+72
-0
lines changed

3 files changed

+72
-0
lines changed

site/e2e/helpers.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { port } from "./playwright.config"
1919
import * as ssh from "ssh2"
2020
import { Duplex } from "stream"
2121
import { WorkspaceBuildParameter } from "api/typesGenerated"
22+
import { createTemplateVersion, uploadTemplateFile } from "api/api"
2223

2324
// createWorkspace creates a workspace for a template.
2425
// It does not wait for it to be running, but it does navigate to the page.
@@ -615,3 +616,24 @@ export const fillParameters = async (
615616
}
616617
}
617618
}
619+
620+
export const uploadTemplateVersion = async (
621+
templateName: string,
622+
responses?: EchoProvisionerResponses,
623+
): Promise<string> => {
624+
const tarball = await createTemplateVersionTar(responses)
625+
const file = new File([tarball], "version.tar", { type: "application/x-tar" })
626+
const uploadResponse = await uploadTemplateFile(file)
627+
628+
// FIXME find:
629+
const organizationId = ""
630+
const templateId = ""
631+
const templateVersion = await createTemplateVersion(organizationId, {
632+
template_id: templateId,
633+
storage_method: "file",
634+
file_id: uploadResponse.hash,
635+
provisioner: "echo",
636+
tags: {},
637+
})
638+
return templateVersion.id
639+
}

site/e2e/tests/createWorkspace.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ test("create workspace and overwrite default parameters", async ({ page }) => {
107107
page,
108108
echoResponsesWithParameters(richParameters),
109109
)
110+
110111
const workspaceName = await createWorkspace(
111112
page,
112113
template,
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import { test } from "@playwright/test"
2+
import {
3+
createTemplate,
4+
createWorkspace,
5+
echoResponsesWithParameters,
6+
uploadTemplateVersion,
7+
verifyParameters,
8+
} from "../helpers"
9+
10+
import { fifthParameter, firstParameter, secondParameter } from "../parameters"
11+
import { RichParameter } from "../provisionerGenerated"
12+
13+
test("update workspace, new optional, mutable parameter added", async ({
14+
page,
15+
}) => {
16+
const richParameters: RichParameter[] = [firstParameter, secondParameter]
17+
const template = await createTemplate(
18+
page,
19+
echoResponsesWithParameters(richParameters),
20+
)
21+
22+
const workspaceName = await createWorkspace(page, template)
23+
24+
// Verify that parameter values are default.
25+
await verifyParameters(page, workspaceName, richParameters, [
26+
{ name: firstParameter.name, value: firstParameter.defaultValue },
27+
{ name: secondParameter.name, value: secondParameter.defaultValue },
28+
])
29+
30+
// Upload new template version with extra parameter.
31+
const updatedRichParameters = [...richParameters, fifthParameter]
32+
const templateVersion = await uploadTemplateVersion(
33+
template,
34+
echoResponsesWithParameters(updatedRichParameters),
35+
)
36+
37+
// TODO Activate the template version
38+
// Go to Versions -> Promote version
39+
40+
// Now, update the workspace.
41+
// TODO Update workspace
42+
43+
// Verify that parameter values are default.
44+
await verifyParameters(page, workspaceName, updatedRichParameters, [
45+
{ name: firstParameter.name, value: firstParameter.defaultValue },
46+
{ name: secondParameter.name, value: secondParameter.defaultValue },
47+
{ name: fifthParameter.name, value: fifthParameter.defaultValue },
48+
])
49+
})

0 commit comments

Comments
 (0)