Files
openwork/evals/specs/authenticated-install.test.ts
T

54 lines
2.8 KiB
TypeScript

import { readFileSync } from "node:fs";
import { fileURLToPath } from "node:url";
import { expect } from "vitest";
import { test } from "@openwork/testkit";
import { buildAuthenticatedInstallDownloadHref } from "../../ee/apps/den-web/app/(den)/_lib/install-download";
const installScreenPath = fileURLToPath(
new URL("../../ee/apps/den-web/app/(den)/_components/install-screen.tsx", import.meta.url),
);
const joinOrgScreenPath = fileURLToPath(
new URL("../../ee/apps/den-web/app/(den)/_components/join-org-screen.tsx", import.meta.url),
);
const memberDashboardPath = fileURLToPath(
new URL("../../ee/apps/den-web/app/(den)/dashboard/_components/member-dashboard-screen.tsx", import.meta.url),
);
const installRoutesPath = fileURLToPath(
new URL("../../ee/apps/den-api/src/routes/org/install-links.ts", import.meta.url),
);
test("signed-in members use clean active-organization install routes without minting an install token", async ({ evidence }) => {
const installScreen = readFileSync(installScreenPath, "utf8");
const joinOrgScreen = readFileSync(joinOrgScreenPath, "utf8");
const memberDashboard = readFileSync(memberDashboardPath, "utf8");
const installRoutes = readFileSync(installRoutesPath, "utf8");
expect(buildAuthenticatedInstallDownloadHref("https://api.example.test/den", "win-x64"))
.toBe("https://api.example.test/den/v1/me/install/win-x64");
expect(installScreen).toContain('fetchInstallConfig(token || null)');
expect(installScreen).toContain('token ? `/v1/install-config?token=');
expect(installScreen).toContain('"/v1/me/install-config"');
expect(installScreen).toContain("buildAuthenticatedInstallDownloadHref");
expect(installScreen).toContain('data-testid="install-workspace-address"');
expect(installScreen).toContain("In the app, enter your workspace address:");
expect(joinOrgScreen).toContain('router.replace("/install")');
expect(joinOrgScreen).toContain("desktopAuthRequested");
expect(memberDashboard).toContain('router.push("/install")');
expect(memberDashboard).not.toContain("createOrganizationInstallLink");
expect(memberDashboard).not.toContain("/v1/install-config?token=");
expect(installRoutes).toContain('"/v1/me/install-config"');
expect(installRoutes).toContain('"/v1/me/install/:platform"');
expect(installRoutes).toContain("installerReleaseTagForMetadata(payload.organization.metadata)");
expect(installRoutes).toContain("distribution: managedDesktopDistribution()");
expect(installRoutes).toContain("orgMemberRoute()");
evidence.recordAssertionEvidence(
"Authenticated onboarding uses the active organization without install tokens",
"Clean /install loads /v1/me/install-config, downloads through /v1/me/install/:platform, post-invite and member actions navigate to /install, and the clipboard OpenWork-link guide remains present.",
true,
);
});