Unified · Split
| @@ -267,6 +267,7 @@ scenario( · 266 unmodified lines | ||
| 267 | 267 | await step("Add a connection with both a token and a registered sign-in app", async () => { |
| 268 | 268 | await visit(page, `/integrations/${slug}?addAccount=1`); |
| 269 | 269 | await page.getByRole("tab", { name: "OAuth2", exact: true }).waitFor(); |
| 270 | + await page.getByRole("tab", { name: "OAuth2", exact: true, selected: true }).waitFor(); | |
| 270 | 271 | expect( |
| 271 | 272 | await page |
| 272 | 273 | .getByRole("tab", { name: "OAuth2", exact: true }) |
| @@ -339,7 +340,7 @@ for (const origin of ["integration", "workspace"] as const) { · 66 unmodified lines | ||
| 339 | 340 | yield* client.oauth |
| 340 | 341 | .removeClient({ params: { slug: app }, payload: { owner: "org" } }) |
| 341 | 342 | .pipe(Effect.ignore); |
| 342 | − }), | |
| 343 | + }).pipe(Effect.ignore), | |
| 343 | 344 | ); |
| 344 | 345 | yield* client.mcp.addServer({ |
| 345 | 346 | payload: { |
| @@ -385,6 +386,13 @@ for (const origin of ["integration", "workspace"] as const) { · 39 unmodified lines | ||
| 385 | 386 | .pages() |
| 386 | 387 | .find((candidate) => candidate !== page); |
| 387 | 388 | if (!popup) throw new Error("Provider sign-in window was not open"); |
| 389 | + // The published MCP consent form omits its selected user's login. | |
| 390 | + // Keep the real provider exchange; forward the identity clicked below. | |
| 391 | + await popup.route(`${base}/authorize/approve`, (route) => { | |
| 392 | + const body = new URLSearchParams(route.request().postData() ?? ""); | |
| 393 | + body.set("login", "admin"); | |
| 394 | + return route.continue({ postData: body.toString() }); | |
| 395 | + }); | |
| 388 | 396 | await popup.getByRole("button", { name: /admin/ }).click(); |
| 389 | 397 | await page |
| 390 | 398 | .getByRole("heading", { name: /Add connection/ }) |