mirror of
https://github.com/andrewyng/openworker.git
synced 2026-09-03 23:03:22 +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>
38 lines
1.7 KiB
TypeScript
38 lines
1.7 KiB
TypeScript
// MCP OAuth quick-add (first server: Granola): the MCP tab offers a curated Connect
|
|
// card; connecting adds the server, kicks off the browser sign-in ("signing in…"),
|
|
// and the tab's poll flips the row to connected. Sign out returns it to needs_auth.
|
|
import { expect } from "@playwright/test";
|
|
import { test } from "./fixtures";
|
|
|
|
async function openMcpTab(page) {
|
|
await page.goto("/");
|
|
await page.getByTestId("account-row").click();
|
|
await page.getByRole("button", { name: "Connectors", exact: true }).click();
|
|
await page.getByRole("button", { name: "MCP servers", exact: true }).click();
|
|
}
|
|
|
|
test("granola: quick-add card → sign-in flow → connected → sign out", async ({ page }) => {
|
|
await openMcpTab(page);
|
|
|
|
// Curated card renders while granola isn't configured.
|
|
const preset = page.getByTestId("mcp-preset-granola");
|
|
await expect(preset).toContainText("Granola");
|
|
await expect(preset).toContainText("Meeting notes");
|
|
|
|
// Connect: adds the server with OAuth pending and starts the browser flow.
|
|
await preset.getByRole("button", { name: "Connect" }).click();
|
|
await expect(page.getByTestId("mcp-preset-granola")).toHaveCount(0);
|
|
const row = page.locator(".space-y-2 > div").filter({ hasText: "granola" }).first();
|
|
await expect(row).toContainText("signing in…");
|
|
|
|
// The 2s status poll flips the mock to connected with its 6 tools.
|
|
await expect(row).toContainText("connected", { timeout: 10_000 });
|
|
await expect(row).toContainText("6 tools");
|
|
await expect(row).toContainText("oauth");
|
|
|
|
// Sign out forgets tokens; the row needs auth again and offers Sign in.
|
|
await row.getByTestId("mcp-signout-granola").click();
|
|
await expect(row).toContainText("needs auth");
|
|
await expect(row.getByTestId("mcp-signin-granola")).toBeVisible();
|
|
});
|