mirror of
https://github.com/andrewyng/openworker.git
synced 2026-09-11 14:50:14 +00:00
Imported from andrewyng/aisuite@1b4bbf303e (contents of its platform/ directory, hoisted to the repo root). Development history prior to this commit lives in that repository. Co-authored-by: Devika <devikaverma11@gmail.com>
79 lines
3.3 KiB
TypeScript
79 lines
3.3 KiB
TypeScript
// The generic multi-account detail page (AccountsDetail) + the modal's generic
|
||
// one-click pane, exercised via Notion — the pattern all batch-2 connectors
|
||
// share (accounts.py layer: AccountRow shape, Default badge, per-account ×).
|
||
import { expect } from "@playwright/test";
|
||
import { test } from "./fixtures";
|
||
|
||
async function openConnectors(page) {
|
||
await page.goto("/");
|
||
await page.getByTestId("account-row").click();
|
||
await page.getByRole("button", { name: "Connectors", exact: true }).click();
|
||
}
|
||
|
||
async function signInAndConnectFirstWorkspace(page) {
|
||
await openConnectors(page);
|
||
await page.getByTestId("account-row").click();
|
||
await page.getByTestId("account-sign-in").click();
|
||
await expect(page.getByTestId("account-row")).toContainText("Rohit", { timeout: 10_000 });
|
||
// Available row → modal with One click | Manual pills → generic one-click
|
||
await page
|
||
.getByTestId("connector-notion")
|
||
.getByRole("button", { name: "Connect", exact: true })
|
||
.click();
|
||
await expect(page.getByTestId("modal-pane-manual")).toBeVisible();
|
||
await page.getByTestId("modal-generic-one-click").click();
|
||
await page.keyboard.press("Escape");
|
||
await expect(page.getByTestId("connector-notion")).toContainText("Rohit's Workspace", {
|
||
timeout: 10_000,
|
||
});
|
||
}
|
||
|
||
test("one-click connect, add a second workspace from the page; first stays default", async ({
|
||
page,
|
||
}) => {
|
||
await signInAndConnectFirstWorkspace(page);
|
||
await page.getByTestId("connector-notion").click();
|
||
await expect(page.getByTestId("accounts-detail")).toBeVisible();
|
||
|
||
await page.getByTestId("add-account-btn").click();
|
||
const first = page.getByTestId("account-ws-1");
|
||
const second = page.getByTestId("account-ws-2");
|
||
await expect(second).toBeVisible({ timeout: 10_000 });
|
||
await expect(first).toContainText("Rohit's Workspace");
|
||
await expect(first).toContainText("Default");
|
||
await expect(second).not.toContainText("Default");
|
||
// list row summarizes the multi-account state
|
||
await page.getByTestId("connectors-breadcrumb").click();
|
||
await expect(page.getByTestId("connector-notion")).toContainText("2 accounts");
|
||
});
|
||
|
||
test("Make default moves the badge; disconnecting the default repoints it", async ({
|
||
page,
|
||
}) => {
|
||
await signInAndConnectFirstWorkspace(page);
|
||
await page.getByTestId("connector-notion").click();
|
||
await page.getByTestId("add-account-btn").click();
|
||
await expect(page.getByTestId("account-ws-2")).toBeVisible({ timeout: 10_000 });
|
||
|
||
await page.getByTestId("account-make-default-ws-2").click();
|
||
await expect(page.getByTestId("account-ws-2")).toContainText("Default");
|
||
await expect(page.getByTestId("account-ws-1")).not.toContainText("Default");
|
||
|
||
await page.getByTestId("account-disconnect-ws-2").click();
|
||
await expect(page.getByTestId("account-ws-2")).toHaveCount(0);
|
||
await expect(page.getByTestId("account-ws-1")).toContainText("Default");
|
||
});
|
||
|
||
test("signed out: the modal's one-click pane offers inline cloud sign-in; manual pane has the token form", async ({
|
||
page,
|
||
}) => {
|
||
await openConnectors(page);
|
||
await page
|
||
.getByTestId("connector-notion")
|
||
.getByRole("button", { name: "Connect", exact: true })
|
||
.click();
|
||
await expect(page.getByTestId("inline-cloud-sign-in")).toBeVisible();
|
||
await page.getByTestId("modal-pane-manual").click();
|
||
await expect(page.getByPlaceholder("ntn_…")).toBeVisible();
|
||
});
|