From 32cb7303e95ef6cf31404a94f7d561c52b34a6c8 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Wed, 17 Apr 2024 14:39:07 +0200 Subject: [PATCH 1/2] e2e tests for network --- site/e2e/api.ts | 21 ++++++++++++ site/e2e/tests/deployment/network.spec.ts | 42 +++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 site/e2e/tests/deployment/network.spec.ts diff --git a/site/e2e/api.ts b/site/e2e/api.ts index 940dcf11ab93d..90fe72b1c1be8 100644 --- a/site/e2e/api.ts +++ b/site/e2e/api.ts @@ -1,5 +1,6 @@ import type { Page } from "@playwright/test"; import { expect } from "@playwright/test"; +import { formatDuration, intervalToDuration } from "date-fns"; import * as API from "api/api"; import type { SerpentOption } from "api/typesGenerated"; import { coderPort } from "./constants"; @@ -128,6 +129,26 @@ export async function verifyConfigFlagEntries( }); } +export async function verifyConfigFlagDuration( + page: Page, + config: API.DeploymentConfig, + flag: string, +) { + const opt = findConfigOption(config, flag); + const configOption = page.locator( + `div.options-table .option-${flag} .option-value-string`, + ); + await expect(configOption).toHaveText( + formatDuration( + // intervalToDuration takes ms, so convert nanoseconds to ms + intervalToDuration({ + start: 0, + end: (opt.value as number) / 1e6, + }), + ), + ); +} + export function findConfigOption( config: API.DeploymentConfig, flag: string, diff --git a/site/e2e/tests/deployment/network.spec.ts b/site/e2e/tests/deployment/network.spec.ts new file mode 100644 index 0000000000000..8663d5512908a --- /dev/null +++ b/site/e2e/tests/deployment/network.spec.ts @@ -0,0 +1,42 @@ +import { test } from "@playwright/test"; +import { getDeploymentConfig } from "api/api"; +import { + setupApiCalls, + verifyConfigFlagArray, + verifyConfigFlagBoolean, + verifyConfigFlagDuration, + verifyConfigFlagNumber, + verifyConfigFlagString, +} from "../../api"; + +test("login with OIDC", async ({ page }) => { + await setupApiCalls(page); + const config = await getDeploymentConfig(); + + await page.goto("/deployment/network", { waitUntil: "domcontentloaded" }); + + await verifyConfigFlagString(page, config, "access-url"); + await verifyConfigFlagBoolean(page, config, "block-direct-connections"); + await verifyConfigFlagBoolean(page, config, "browser-only"); + await verifyConfigFlagBoolean(page, config, "derp-force-websockets"); + await verifyConfigFlagBoolean(page, config, "derp-server-enable"); + await verifyConfigFlagString(page, config, "derp-server-region-code"); + await verifyConfigFlagString(page, config, "derp-server-region-code"); + await verifyConfigFlagNumber(page, config, "derp-server-region-id"); + await verifyConfigFlagString(page, config, "derp-server-region-name"); + //await verifyConfigFlagString(page, config, "derp-server-relay-url"); + await verifyConfigFlagArray(page, config, "derp-server-stun-addresses"); + await verifyConfigFlagBoolean(page, config, "disable-password-auth"); + await verifyConfigFlagBoolean(page, config, "disable-session-expiry-refresh"); + await verifyConfigFlagDuration(page, config, "max-token-lifetime"); + await verifyConfigFlagDuration(page, config, "proxy-health-interval"); + await verifyConfigFlagBoolean(page, config, "redirect-to-access-url"); + await verifyConfigFlagBoolean(page, config, "secure-auth-cookie"); + await verifyConfigFlagDuration(page, config, "session-duration"); + 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"); + await verifyConfigFlagString(page, config, "wildcard-access-url"); +}); From daf5abb0eb0ce4cef8f90db9935361d03014e529 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Wed, 17 Apr 2024 14:50:09 +0200 Subject: [PATCH 2/2] done --- site/e2e/tests/deployment/network.spec.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/site/e2e/tests/deployment/network.spec.ts b/site/e2e/tests/deployment/network.spec.ts index 8663d5512908a..ec4d869622573 100644 --- a/site/e2e/tests/deployment/network.spec.ts +++ b/site/e2e/tests/deployment/network.spec.ts @@ -24,7 +24,6 @@ test("login with OIDC", async ({ page }) => { await verifyConfigFlagString(page, config, "derp-server-region-code"); await verifyConfigFlagNumber(page, config, "derp-server-region-id"); await verifyConfigFlagString(page, config, "derp-server-region-name"); - //await verifyConfigFlagString(page, config, "derp-server-relay-url"); await verifyConfigFlagArray(page, config, "derp-server-stun-addresses"); await verifyConfigFlagBoolean(page, config, "disable-password-auth"); await verifyConfigFlagBoolean(page, config, "disable-session-expiry-refresh"); @@ -38,5 +37,4 @@ test("login with OIDC", async ({ page }) => { await verifyConfigFlagString(page, config, "tls-client-auth"); await verifyConfigFlagBoolean(page, config, "tls-enable"); await verifyConfigFlagString(page, config, "tls-min-version"); - await verifyConfigFlagString(page, config, "wildcard-access-url"); });