i18n 적용
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { resolveLocaleFromAcceptLanguage, DEFAULT_LOCALE } from "@/features/i18n/locale";
|
||||
|
||||
// 브라우저 Accept-Language 헤더 기반 로케일 해석 헬퍼 테스트
|
||||
// - 지원 언어: en(기본), ko
|
||||
// - 헤더가 없거나 지원 언어가 없으면 항상 en으로 떨어져야 한다.
|
||||
|
||||
describe("resolveLocaleFromAcceptLanguage", () => {
|
||||
it("헤더가 없으면 기본 로케일(en)을 반환해야 한다", () => {
|
||||
expect(resolveLocaleFromAcceptLanguage(null)).toBe(DEFAULT_LOCALE);
|
||||
expect(resolveLocaleFromAcceptLanguage(undefined)).toBe(DEFAULT_LOCALE);
|
||||
});
|
||||
|
||||
it("ko 가 포함된 헤더면 ko 로케일을 반환해야 한다", () => {
|
||||
expect(resolveLocaleFromAcceptLanguage("ko")) .toBe("ko");
|
||||
expect(resolveLocaleFromAcceptLanguage("ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7")).toBe("ko");
|
||||
expect(resolveLocaleFromAcceptLanguage("en-US,en;q=0.8,ko;q=0.7")).toBe("ko");
|
||||
});
|
||||
|
||||
it("지원하지 않는 언어만 있을 경우 기본 로케일(en)을 반환해야 한다", () => {
|
||||
expect(resolveLocaleFromAcceptLanguage("fr-FR,fr;q=0.9")).toBe(DEFAULT_LOCALE);
|
||||
expect(resolveLocaleFromAcceptLanguage("zh-CN,zh;q=0.9")) .toBe(DEFAULT_LOCALE);
|
||||
});
|
||||
|
||||
it("en 이 포함되어 있고 ko 는 없는 경우 기본(en)을 유지해야 한다", () => {
|
||||
expect(resolveLocaleFromAcceptLanguage("en-US,en;q=0.9")) .toBe("en");
|
||||
expect(resolveLocaleFromAcceptLanguage("en;q=0.8,fr;q=0.7")) .toBe("en");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user