Files
agentic-dev/packages/navigation/src/__factories__/header.factory.test.ts
Danijel Martinek 53c2fbb9e1 feat(features): add test factories to all 5 features
Adds src/__factories__/<entity>.factory.ts to auth, blog, marketing-pages,
navigation, media. Each factory uses defineFactory from @repo/core-testing
with stable date defaults (2026-01-01) so snapshot diffs reflect SUT
behavior only. Refactors mechanical inline-fixture tests to use factories.

Also adds vitest.config.ts and tsconfig path alias to @repo/media (lacked
both), and adds @repo/core-testing devDependency to @repo/media.

Spec: §5.1, §6.3
2026-05-05 14:56:50 +02:00

30 lines
947 B
TypeScript

import { describe, it, expect, beforeEach } from "vitest";
import { headerFactory } from "@/__factories__/header.factory";
describe("headerFactory", () => {
beforeEach(() => headerFactory.reset());
it("returns a Header with stable defaults", () => {
const h = headerFactory.build();
expect(h.items).toHaveLength(0);
expect(h.logoId).toBeUndefined();
});
it("applies overrides", () => {
const h = headerFactory.build({
logoId: "logo-42",
items: [{ label: "Home", href: "/", external: false }],
});
expect(h.logoId).toBe("logo-42");
expect(h.items).toHaveLength(1);
expect(h.items[0]?.label).toBe("Home");
});
it("builds multiple headers independently", () => {
const a = headerFactory.build({ items: [{ label: "A", href: "/a", external: false }] });
const b = headerFactory.build({ items: [] });
expect(a.items).toHaveLength(1);
expect(b.items).toHaveLength(0);
});
});