개선관리 요구사항과 Google 로그인을 완료

This commit is contained in:
Yun Chan 2026-08-28 16:07:09 +09:00
parent cc0a15b7c6
commit 2a39636163
112 changed files with 10166 additions and 527 deletions

View file

@ -42,7 +42,7 @@ const READY_AUTH_CONFIG = {
login_path: "/auth/login?provider=saml",
},
],
allowed_email_domains: ["hs.ac.kr", "twentyoz.kr"],
allowed_email_domains: [],
redirect_uri: "http://127.0.0.1:8000/auth/callback",
dev_login_enabled: true,
};
@ -153,7 +153,7 @@ test.describe("full sweep auth", () => {
});
// 검증 checklist: auth-login-generic-google-button
test("secondary Google button shows the second allowed domain and starts the same google OAuth flow", async ({
test("both Google buttons advertise unrestricted accounts and start the same OAuth flow", async ({
page,
}) => {
await mockUnauthenticatedMe(page);
@ -175,11 +175,9 @@ test.describe("full sweep auth", () => {
const secondary = page.locator(".lg-obtn.secondary");
await expect(secondary).toBeEnabled();
await expect(secondary).toContainText("Google 계정으로 계속");
// 서브라벨은 두 번째 허용 도메인을 표시한다.
await expect(secondary.locator(".sub")).toHaveText("@twentyoz.kr");
// primary 버튼과 동일하게 첫 번째 도메인은 primary 서브라벨에 있다.
await expect(page.locator(".lg-obtn.primary .sub")).toHaveText("@hs.ac.kr");
await expect(secondary).toContainText("다른 Google 계정 선택");
await expect(secondary.locator(".sub")).toHaveText("이메일 확인 후 바로 시작");
await expect(page.locator(".lg-obtn.primary .sub")).toHaveText("모든 Google 계정");
// 클릭 시 primary와 동일한 provider=google 시작 URL로 이동한다.
await Promise.all([
@ -189,7 +187,7 @@ test.describe("full sweep auth", () => {
});
// 검증 checklist: auth-login-brand-domain-badges
test("brand panel domain badges distinguish checking, unset, and loaded states", async ({
test("brand panel Google policy badge distinguishes checking, unset, and ready states", async ({
page,
}) => {
await mockUnauthenticatedMe(page);
@ -198,7 +196,7 @@ test.describe("full sweep auth", () => {
/* 응답을 보류해 조회 중 상태를 고정한다 */
});
await page.goto("/login");
await expect(page.locator(".lg-policy")).toContainText("허용 도메인");
await expect(page.locator(".lg-policy")).toContainText("Google 로그인");
await expect(page.locator(".lg-policy b")).toHaveText("확인 중");
// 2) 설정 조회 실패: "설정 필요" 배지.
@ -213,14 +211,11 @@ test.describe("full sweep auth", () => {
await page.goto("/login");
await expect(page.locator(".lg-policy b")).toHaveText("설정 필요");
// 3) 정상 로드: allowed_email_domains를 배지로 나열.
// 3) 정상 로드: 모든 provider-verified Google 계정을 허용한다.
await page.unroute(CONFIG_PATTERN);
await fulfillConfig(page, READY_AUTH_CONFIG);
await page.goto("/login");
const badges = page.locator(".lg-policy b");
await expect(badges).toHaveCount(2);
await expect(badges.nth(0)).toHaveText("hs.ac.kr");
await expect(badges.nth(1)).toHaveText("twentyoz.kr");
await expect(page.locator(".lg-policy b")).toHaveText("모든 Google 계정");
});
// 검증 checklist: auth-onboarding-avatar-upload