Newer
Older
client_dwatch / lib / auth / __tests__ / login-error-message.test.ts
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);
  });
});