Skip to article
Documentation

src/features/reports/sample-month.test.ts

Linked repository file from this build.

import { expect, test } from "bun:test";
import { isCompleteMonthInput, parseSampleMonth } from "./sample-month";

test("sample month typing accepts common variants and rejects unfinished values", () => {
  expect(parseSampleMonth("2026-05")).toBe("2026-05");
  expect(parseSampleMonth("2026-5")).toBe("2026-05");
  expect(parseSampleMonth("5/2026")).toBe("2026-05");
  expect(parseSampleMonth("26-5")).toBe("2026-05");
  expect(parseSampleMonth("26-05")).toBe("2026-05");
  expect(parseSampleMonth("05/2026")).toBe("2026-05");
  expect(parseSampleMonth("202605")).toBe("2026-05");
  expect(parseSampleMonth("5-26")).toBe("2026-05");
  expect(parseSampleMonth("")).toBeNull();
  expect(parseSampleMonth("2026-13")).toBeNull();
  expect(parseSampleMonth("2026")).toBeNull();
  expect(parseSampleMonth("2")).toBeNull();

  expect(isCompleteMonthInput("")).toBe(true);
  expect(isCompleteMonthInput("2026-05")).toBe(true);
  expect(isCompleteMonthInput("5/2026")).toBe(true);
  expect(isCompleteMonthInput("26-05")).toBe(true);
  expect(isCompleteMonthInput("2026-5")).toBe(false);
  expect(isCompleteMonthInput("26-5")).toBe(false);
  expect(isCompleteMonthInput("2026-1")).toBe(false);
  expect(isCompleteMonthInput("2026")).toBe(false);
});