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,
  }) => {
    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 expect(
      page.getByRole("button", { name: "SSO 계정으로 로그인" }),
    ).toBeVisible();
    expect(authorizeRequested).toBe(false);
  });
});
