Skip to content

Commit 6b6b32c

Browse files
committed
Add e2e tests
1 parent 48d0e39 commit 6b6b32c

File tree

6 files changed

+64
-17
lines changed

6 files changed

+64
-17
lines changed

site/e2e/parameters.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { RichParameter } from "./provisionerGenerated";
22

33
// Rich parameters
44

5-
const emptyParameter: RichParameter = {
5+
export const emptyParameter: RichParameter = {
66
name: "",
77
description: "",
88
type: "",
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { test, expect } from "@playwright/test";
2+
import { username } from "../../constants";
3+
import {
4+
createTemplate,
5+
createWorkspace,
6+
echoResponsesWithParameters,
7+
} from "../../helpers";
8+
import { emptyParameter } from "../../parameters";
9+
import type { RichParameter } from "../../provisionerGenerated";
10+
11+
test("create workspace in auto mode", async ({ page }) => {
12+
const richParameters: RichParameter[] = [
13+
{ ...emptyParameter, name: "repo", type: "string" },
14+
];
15+
const template = await createTemplate(
16+
page,
17+
echoResponsesWithParameters(richParameters),
18+
);
19+
const name = "test-workspace";
20+
await page.goto(
21+
`/templates/${template}/workspace?mode=auto&param.repo=example&name=${name}`,
22+
{
23+
waitUntil: "domcontentloaded",
24+
},
25+
);
26+
await expect(page).toHaveTitle(`${username}/${name} - Coder`);
27+
});
28+
29+
test("use an existing workspace that matches the `match` parameter instead of creating a new one", async ({
30+
page,
31+
}) => {
32+
const richParameters: RichParameter[] = [
33+
{ ...emptyParameter, name: "repo", type: "string" },
34+
];
35+
const template = await createTemplate(
36+
page,
37+
echoResponsesWithParameters(richParameters),
38+
);
39+
const prevWorkspace = await createWorkspace(page, template);
40+
await page.goto(
41+
`/templates/${template}/workspace?mode=auto&param.repo=example&name=new-name&match=name:${prevWorkspace}`,
42+
{
43+
waitUntil: "domcontentloaded",
44+
},
45+
);
46+
await expect(page).toHaveTitle(`${username}/${prevWorkspace} - Coder`);
47+
});

site/e2e/tests/createWorkspace.spec.ts renamed to site/e2e/tests/workspaces/createWorkspace.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import {
77
openTerminalWindow,
88
requireTerraformProvisioner,
99
verifyParameters,
10-
} from "../helpers";
11-
import { beforeCoderTest } from "../hooks";
10+
} from "../../helpers";
11+
import { beforeCoderTest } from "../../hooks";
1212
import {
1313
secondParameter,
1414
fourthParameter,
@@ -18,8 +18,8 @@ import {
1818
seventhParameter,
1919
sixthParameter,
2020
randParamName,
21-
} from "../parameters";
22-
import type { RichParameter } from "../provisionerGenerated";
21+
} from "../../parameters";
22+
import type { RichParameter } from "../../provisionerGenerated";
2323

2424
test.beforeEach(({ page }) => beforeCoderTest(page));
2525

site/e2e/tests/restartWorkspace.spec.ts renamed to site/e2e/tests/workspaces/restartWorkspace.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import {
55
createWorkspace,
66
echoResponsesWithParameters,
77
verifyParameters,
8-
} from "../helpers";
9-
import { beforeCoderTest } from "../hooks";
10-
import { firstBuildOption, secondBuildOption } from "../parameters";
11-
import type { RichParameter } from "../provisionerGenerated";
8+
} from "../../helpers";
9+
import { beforeCoderTest } from "../../hooks";
10+
import { firstBuildOption, secondBuildOption } from "../../parameters";
11+
import type { RichParameter } from "../../provisionerGenerated";
1212

1313
test.beforeEach(({ page }) => beforeCoderTest(page));
1414

site/e2e/tests/startWorkspace.spec.ts renamed to site/e2e/tests/workspaces/startWorkspace.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import {
66
echoResponsesWithParameters,
77
stopWorkspace,
88
verifyParameters,
9-
} from "../helpers";
10-
import { beforeCoderTest } from "../hooks";
11-
import { firstBuildOption, secondBuildOption } from "../parameters";
12-
import type { RichParameter } from "../provisionerGenerated";
9+
} from "../../helpers";
10+
import { beforeCoderTest } from "../../hooks";
11+
import { firstBuildOption, secondBuildOption } from "../../parameters";
12+
import type { RichParameter } from "../../provisionerGenerated";
1313

1414
test.beforeEach(({ page }) => beforeCoderTest(page));
1515

site/e2e/tests/updateWorkspace.spec.ts renamed to site/e2e/tests/workspaces/updateWorkspace.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ import {
77
updateWorkspace,
88
updateWorkspaceParameters,
99
verifyParameters,
10-
} from "../helpers";
11-
import { beforeCoderTest } from "../hooks";
10+
} from "../../helpers";
11+
import { beforeCoderTest } from "../../hooks";
1212
import {
1313
fifthParameter,
1414
firstParameter,
1515
secondParameter,
1616
sixthParameter,
1717
secondBuildOption,
18-
} from "../parameters";
19-
import type { RichParameter } from "../provisionerGenerated";
18+
} from "../../parameters";
19+
import type { RichParameter } from "../../provisionerGenerated";
2020

2121
test.beforeEach(({ page }) => beforeCoderTest(page));
2222

0 commit comments

Comments
 (0)