src/programs/snap-negative/seed.test.ts
Linked repository file from this build.
import { describe, expect, test } from "bun:test";
import { isValidReviewNumberFormat } from "@/lib/import/snap-negative";
import {
createDemoSeed,
createImportTemplate,
DEMO_BASELINE_PER_MONTH,
DEMO_REVIEW_NUMBER,
DEMO_SAMPLE_MONTH,
generateResetBaselineBatch,
} from "./seed";
import { createDemoReviewTemplate } from "./review-template";
describe("demo seed baseline", () => {
test("createDemoSeed matches review 60001 without generating the full reset batch", () => {
const batch = generateResetBaselineBatch();
const generated = batch.reviews.find((review) => review.reviewNumber === DEMO_REVIEW_NUMBER);
const demo = createDemoSeed();
expect(batch.reviews.length).toBe(DEMO_BASELINE_PER_MONTH * 2);
expect(generated).toBeDefined();
expect(demo.reviewNumber).toBe(DEMO_REVIEW_NUMBER);
expect(demo.sampleMonth).toBe(DEMO_SAMPLE_MONTH);
expect(demo.clientName).toBe(generated!.clientName);
expect(demo.facts.members).toEqual(generated!.facts.members);
expect(demo.facts.answers.telephone).toBe(generated!.facts.answers.telephone);
expect(demo.state).toBe("new_active");
expect(demo.outcome).toBe("");
expect(demo.examiner).toBe("101");
expect(demo.supervisor).toBe("201");
expect(demo.facts.paCap).toBeUndefined();
expect(demo.activity).toEqual([]);
expect(isValidReviewNumberFormat(demo.reviewNumber)).toBe(true);
expect(createDemoReviewTemplate()).toEqual(demo);
});
test("reset baseline batch uses valid review number formats throughout", () => {
const batch = generateResetBaselineBatch();
for (const review of batch.reviews) {
expect(isValidReviewNumberFormat(review.reviewNumber)).toBe(true);
expect(["101", "102", "103", "104", "105", "106", "107", "108"]).toContain(review.examiner);
expect(review.supervisor).toBe(
["101", "102", "103", "104"].includes(review.examiner) ? "201" : "202",
);
}
const closed = batch.reviews.filter((review) => /^(60|61)/.test(review.reviewNumber));
const rejected = batch.reviews.filter((review) => /^(65|66)/.test(review.reviewNumber));
expect(closed.length).toBe(DEMO_BASELINE_PER_MONTH);
expect(rejected.length).toBe(DEMO_BASELINE_PER_MONTH);
});
test("createImportTemplate remains the minimal import shape", () => {
const template = createImportTemplate();
expect(template.facts.members.length).toBeGreaterThan(0);
expect(template.facts.scenarios.compI.populated).toBe(true);
expect(template.examiner).toBe("101");
expect(template.supervisor).toBe("201");
});
});