forked from baron/baron-sso
40 lines
1.3 KiB
TypeScript
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);
|
|
});
|
|
});
|