Files
coder/site/e2e/tests/startWorkspace.spec.ts
T
Ammar Bandukwala adbb025e74 feat: add user-level parameter autofill (#11731)
This PR solves #10478 by auto-filling previously used template values in create and update workspace flows.

I decided against explicit user values in settings for these reasons:

* Autofill is far easier to implement
* Users benefit from autofill _by default_ — we don't need to teach them new concepts
* If we decide that autofill creates more harm than good, we can remove it without breaking compatibility
2024-01-30 16:02:21 -06:00

50 lines
1.6 KiB
TypeScript

import { test } from "@playwright/test";
import {
buildWorkspaceWithParameters,
createTemplate,
createWorkspace,
echoResponsesWithParameters,
stopWorkspace,
verifyParameters,
} from "../helpers";
import { firstBuildOption, secondBuildOption } from "../parameters";
import { RichParameter } from "../provisionerGenerated";
test("start workspace with ephemeral parameters", async ({ page }) => {
const richParameters: RichParameter[] = [firstBuildOption, secondBuildOption];
const template = await createTemplate(
page,
echoResponsesWithParameters(richParameters),
);
const workspaceName = await createWorkspace(page, template);
// Verify that build options are default (not selected).
await verifyParameters(page, workspaceName, richParameters, [
{ name: richParameters[0].name, value: firstBuildOption.defaultValue },
{ name: richParameters[1].name, value: secondBuildOption.defaultValue },
]);
// Stop the workspace
await stopWorkspace(page, workspaceName);
// Now, start the workspace with ephemeral parameters selected.
const buildParameters = [
{ name: richParameters[0].name, value: "AAAAA" },
{ name: richParameters[1].name, value: "true" },
];
await buildWorkspaceWithParameters(
page,
workspaceName,
richParameters,
buildParameters,
);
// Verify that build options are default (not selected).
await verifyParameters(page, workspaceName, richParameters, [
{ name: richParameters[0].name, value: firstBuildOption.defaultValue },
{ name: richParameters[1].name, value: secondBuildOption.defaultValue },
]);
});