1
0
forked from baron/baron-sso

refactor: 보조 이메일 키값을 sub_email로 통일 및 수동 폼 추가 (#917)

- `secondary_emails` 대신 `sub_email`을 키값으로 사용하도록 전면 수정
- 관리자 화면의 수동 사용자 생성(Create) 및 수정(Detail) 폼에 `sub_email` 입력 필드 추가
- CSV 템플릿의 컬럼명을 `sub_email`로 변경
- 백엔드의 Kratos Traits 조회 및 배열 추출 로직을 `sub_email` 기준으로 업데이트
- E2E 테스트(`users_bulk.spec.ts`, `users_bulk_secondary.spec.ts`)에서 `sub_email` 검증하도록 수정 및 통과 확인
This commit is contained in:
2026-05-29 11:07:59 +09:00
parent 00310448e9
commit 62b1938c42
8 changed files with 112 additions and 66 deletions

View File

@@ -302,10 +302,7 @@ test.describe("Users Bulk Upload", () => {
const payload = JSON.parse(bulkPayload);
expect(payload.users[0].tenantSlug).toBe("primary-tenant");
expect(payload.users[0].metadata.employee_id).toBe("EMP001");
expect(payload.users[0].metadata.sub_email).toBe(
"dual.alias@hanmaceng.co.kr",
);
expect(payload.users[0].metadata.secondary_emails).toEqual([
expect(payload.users[0].metadata.sub_email).toEqual([
"dual.alias@hanmaceng.co.kr",
]);
expect(payload.users[0].metadata.aliasEmails).toEqual([

View File

@@ -66,7 +66,7 @@ test.describe("Users Bulk Upload Secondary Emails", () => {
await page.getByRole("menuitem", { name: /일괄 임포트|일괄 등록|Bulk Import/i }).click();
// Create a mock CSV with secondary_emails
const csvContent = `email,secondary_emails,name,phone,role,tenant_slug\ntest@example.com,sub1@test.com;sub2@test.com,홍길동,010-1234-5678,user,tenant-slug`;
const csvContent = `email,sub_email,name,phone,role,tenant_slug\ntest@example.com,sub1@test.com;sub2@test.com,홍길동,010-1234-5678,user,tenant-slug`;
const fileChooserPromise = page.waitForEvent('filechooser');
await page.getByText(/파일 선택|Change file|Select file/i).click();
@@ -89,7 +89,7 @@ test.describe("Users Bulk Upload Secondary Emails", () => {
expect(bulkPayload.users).toHaveLength(1);
// The most important check - does it parse to the metadata
expect(bulkPayload.users[0].metadata.secondary_emails).toContain("sub1@test.com");
expect(bulkPayload.users[0].metadata.secondary_emails).toContain("sub2@test.com");
expect(bulkPayload.users[0].metadata.sub_email).toContain("sub1@test.com");
expect(bulkPayload.users[0].metadata.sub_email).toContain("sub2@test.com");
});
});