/**
 * 接続状態表示ロジックのユニットテスト。
 * index.html の「接続待ち…」/「Err」切り替えが CONNECTION_GRACE_ATTEMPTS に従うことを検証する。
 */
import { describe, it } from "node:test";
import assert from "node:assert";
import {
  CONNECTION_GRACE_ATTEMPTS,
  getConnectionStatusLabel,
} from "../../src/frontend/js/connection-status.js";

describe("connection-status", () => {
  it("CONNECTION_GRACE_ATTEMPTS は 12 である", () => {
    assert.strictEqual(CONNECTION_GRACE_ATTEMPTS, 12);
  });

  it("失敗 0〜12 回は「接続待ち…」を返す", () => {
    for (let i = 0; i <= CONNECTION_GRACE_ATTEMPTS; i++) {
      assert.strictEqual(
        getConnectionStatusLabel(i),
        "接続待ち…",
        `failCount=${i}`
      );
    }
  });

  it("失敗 13 回以降は「Err」を返す", () => {
    assert.strictEqual(getConnectionStatusLabel(13), "Err");
    assert.strictEqual(getConnectionStatusLabel(20), "Err");
    assert.strictEqual(getConnectionStatusLabel(100), "Err");
  });
});
