i18n 적용
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { getProjectsMessages } from "@/features/i18n/messages/projects";
|
||||
import { DEFAULT_LOCALE } from "@/features/i18n/locale";
|
||||
|
||||
// Projects i18n 메시지 딕셔너리 TDD
|
||||
// - en/ko 각각에서 헤더/툴바/테이블 헤더 일부 키가 올바른 문자열을 반환하는지 검증한다.
|
||||
// - 지원하지 않는 로케일은 DEFAULT_LOCALE(en) 으로 폴백한다.
|
||||
|
||||
describe("getProjectsMessages", () => {
|
||||
it("en 로케일에서는 프로젝트 목록 헤더/툴바/테이블 헤더를 영어로 반환해야 한다", () => {
|
||||
const t = getProjectsMessages("en");
|
||||
|
||||
expect(t.headerTitle).toBe("Projects");
|
||||
expect(t.toolbarDeleteSelected).toBe("Delete selected");
|
||||
expect(t.tableHeaderTitle).toBe("Title");
|
||||
expect(t.tableHeaderSlug).toBe("Address (slug)");
|
||||
});
|
||||
|
||||
it("ko 로케일에서는 프로젝트 목록 헤더/툴바/테이블 헤더를 한국어로 반환해야 한다", () => {
|
||||
const t = getProjectsMessages("ko");
|
||||
|
||||
expect(t.headerTitle).toBe("프로젝트 목록");
|
||||
expect(t.toolbarDeleteSelected).toBe("선택 삭제");
|
||||
expect(t.tableHeaderTitle).toBe("제목");
|
||||
expect(t.tableHeaderSlug).toBe("주소(slug)");
|
||||
});
|
||||
|
||||
it("지원하지 않는 로케일이면 DEFAULT_LOCALE(en) 메시지를 반환해야 한다", () => {
|
||||
const fallback = getProjectsMessages(DEFAULT_LOCALE);
|
||||
const t = getProjectsMessages("fr" as any);
|
||||
|
||||
expect(t.headerTitle).toBe(fallback.headerTitle);
|
||||
expect(t.tableHeaderTitle).toBe(fallback.tableHeaderTitle);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user