Files
coder/site/e2e/tests/deployment/security.spec.ts
T
Bruno Quaresma 8f2394c256 chore: replace MUI tables (#20201)
I tried to break this work into smaller pieces, but since there are a
lot of dependent components, I decided to handle it in one larger chunk
and rely on Storybook to catch any bugs.

That said, let me know if you’d prefer a different approach!
2025-10-09 10:09:37 -03:00

54 lines
1.7 KiB
TypeScript

import type { Page } from "@playwright/test";
import { expect, test } from "@playwright/test";
import { API, type DeploymentConfig } from "api/api";
import {
findConfigOption,
setupApiCalls,
verifyConfigFlagBoolean,
verifyConfigFlagNumber,
verifyConfigFlagString,
} from "../../api";
import { login } from "../../helpers";
import { beforeCoderTest } from "../../hooks";
test.beforeEach(async ({ page }) => {
beforeCoderTest(page);
await login(page);
await setupApiCalls(page);
});
test("enabled security settings", async ({ page }) => {
const config = await API.getDeploymentConfig();
await page.goto("/deployment/security", { waitUntil: "domcontentloaded" });
await verifyConfigFlagString(page, config, "ssh-keygen-algorithm");
await verifyConfigFlagBoolean(page, config, "secure-auth-cookie");
await verifyConfigFlagBoolean(page, config, "disable-owner-workspace-access");
await verifyConfigFlagBoolean(page, config, "tls-redirect-http-to-https");
await verifyStrictTransportSecurity(page, config);
await verifyConfigFlagString(page, config, "tls-address");
await verifyConfigFlagBoolean(page, config, "tls-allow-insecure-ciphers");
await verifyConfigFlagString(page, config, "tls-client-auth");
await verifyConfigFlagBoolean(page, config, "tls-enable");
await verifyConfigFlagString(page, config, "tls-min-version");
});
async function verifyStrictTransportSecurity(
page: Page,
config: DeploymentConfig,
) {
const flag = "strict-transport-security";
const opt = findConfigOption(config, flag);
if (opt.value !== 0) {
await verifyConfigFlagNumber(page, config, flag);
return;
}
const configOption = page.locator(
`table.options-table .option-${flag} .option-value-string`,
);
await expect(configOption).toHaveText("Disabled");
}