Files
kandev/apps/web/e2e/tests/integrations/integrations-enabled-per-workspace.spec.ts
T
2026-08-24 11:09:03 +00:00

55 lines
2.5 KiB
TypeScript

import { test, expect } from "../../fixtures/test-base";
// Covers docs/specs/integrations/requirements/enable-disable-toggle.md's per-workspace
// scoping: the enable toggle belongs to the workspace whose settings page it
// sits on, so disabling an integration in one workspace leaves every other
// workspace's toggle alone. It shipped install-wide first, which silenced an
// integration everywhere from a single workspace's slider.
test.describe("integration enable toggles are scoped to their workspace", () => {
test("disabling GitHub in one workspace leaves the other workspace enabled", async ({
testPage,
apiClient,
prCapture,
}) => {
const first = await apiClient.createWorkspace("Toggle Scope A");
const second = await apiClient.createWorkspace("Toggle Scope B");
const firstIntegrations = `/settings/workspaces/${first.id}/integrations`;
const secondIntegrations = `/settings/workspaces/${second.id}/integrations`;
await testPage.goto(firstIntegrations);
const githubSwitch = testPage.locator("#github-enabled");
await expect(githubSwitch).toHaveAttribute("aria-checked", "true");
await githubSwitch.click();
await testPage
.getByTestId("settings-floating-save")
.getByRole("button", { name: "Save changes" })
.click();
await expect(testPage.getByTestId("settings-floating-save")).not.toBeVisible();
await prCapture.screenshot("workspace-a-github-disabled", {
caption: "Workspace A: GitHub disabled",
});
// The other workspace never asked for GitHub to be off.
await testPage.goto(secondIntegrations);
await expect(testPage.locator("#github-enabled")).toHaveAttribute("aria-checked", "true");
await prCapture.screenshot("workspace-b-github-still-enabled", {
caption: "Workspace B: GitHub still enabled",
});
// ...and GitHub's own settings page under that workspace agrees.
await testPage.goto(`${secondIntegrations}/github`);
await expect(testPage.locator("#github-enabled")).toHaveAttribute("aria-checked", "true");
await prCapture.screenshot("workspace-b-github-page-enabled", {
caption: "Workspace B, GitHub settings page: still enabled",
});
// The workspace that disabled it still reads disabled on both surfaces.
await testPage.goto(firstIntegrations);
await expect(testPage.locator("#github-enabled")).toHaveAttribute("aria-checked", "false");
await testPage.goto(`${firstIntegrations}/github`);
await expect(testPage.locator("#github-enabled")).toHaveAttribute("aria-checked", "false");
});
});