1
0
forked from baron/baron-sso
Files
baron-sso/devfront/tests/devfront-login.spec.ts

40 lines
1.3 KiB
TypeScript

import { expect, test } from "@playwright/test";
test.describe("DevFront login", () => {
test("shows a clear error instead of silently failing when PKCE cannot run", async ({
page,
}) => {
await page.addInitScript(() => {
Object.defineProperty(window, "isSecureContext", {
configurable: true,
value: false,
});
});
let authorizeRequested = false;
await page.route("**/oidc/.well-known/openid-configuration", async (route) => {
await route.fulfill({
json: {
issuer: "http://localhost:5000/oidc",
authorization_endpoint: "http://localhost:5000/oidc/oauth2/auth",
token_endpoint: "http://localhost:5000/oidc/oauth2/token",
jwks_uri: "http://localhost:5000/oidc/.well-known/jwks.json",
},
headers: { "Access-Control-Allow-Origin": "*" },
});
});
await page.route("**/oidc/oauth2/auth**", async (route) => {
authorizeRequested = true;
await route.fulfill({ status: 500, body: "unexpected authorize request" });
});
await page.goto("/login");
await page.getByRole("button", { name: "SSO 계정으로 로그인" }).click();
await expect(page.getByRole("alert")).toContainText(
"HTTPS 또는 localhost",
);
expect(authorizeRequested).toBe(false);
});
});