import { describe, expect, it } from "vitest";
import { loginErrorMessage } from "@/lib/auth/login-error-message";
/**
* ログインの失敗の文言(指示書BC 5-6。D-183)。★状態コードで分け、トークンの中身に関わることは言わない★。
* 戻り値は辞書のキー(画面で t() に通す)。
*/
describe("loginErrorMessage — 状態コード → 文言", () => {
const cases: Array<[string, number, string]> = [
["M1 401 トークン違い", 401, "トークンが違います"],
["M2 403 IP 制限", 403, "このIPアドレスからは利用できません"],
["M3 422 空", 422, "トークンを入力してください"],
["M4 429 回数制限", 429, "試行回数が多すぎます。しばらくしてから再度お試しください"],
["M5 500 サーバー側の失敗", 500, "ログインできませんでした。時間をおいて再度お試しください"],
["M6 503 サーバー側の失敗", 503, "ログインできませんでした。時間をおいて再度お試しください"],
["M7 404 想定外はサーバー側の失敗と同じ", 404, "ログインできませんでした。時間をおいて再度お試しください"],
];
it.each(cases)("%s", (_name, status, expected) => {
expect(loginErrorMessage(status)).toBe(expected);
});
});