import { describe, expect, it } from "vitest";
import { maskTime } from "./timeFields";

describe("maskTime", () => {
  it("не пропускает невозможные значения", () => {
    expect(maskTime("99:99", false)).toBe("09:09"); // 9>2 → 09; 9>5 → 09
    expect(maskTime("3070", false)).toBe("03:07"); // 3>2 → 03; 7>5 → 07
    expect(maskTime("2599", false)).toBe("23:09"); // 25→23 (зажим), 9>5 → 09
  });

  it("расставляет двоеточия и ограничивает длину", () => {
    expect(maskTime("1234", false)).toBe("12:34");
    expect(maskTime("12", false)).toBe("12");
    expect(maskTime("123456789", false)).toBe("12:34");
  });

  it("поддерживает секунды", () => {
    expect(maskTime("123456", true)).toBe("12:34:56");
    expect(maskTime("235959", true)).toBe("23:59:59");
    expect(maskTime("990000", true)).toBe("09:09:00");
  });

  it("игнорирует мусор и лишние двоеточия", () => {
    expect(maskTime("1a2:b3", false)).toBe("12:3");
    expect(maskTime("", false)).toBe("");
  });
});
