mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-13 06:24:54 +10:00
6a01207b6b
Adds ~1000 tests to bring the previously-untested packages and apps under coverage: - packages/utils — string, color, date, file, level, locale, sanitize, field, html, network-icons, rate-limit, url, url-security, monorepo, resume/patch, resume/docx/link-utils, style helpers (~97% on the testable utility files) - packages/ui — 28 component test files plus the use-controlled-state, use-mobile, use-confirm, use-prompt hooks (95% statements) - packages/pdf — shared template helpers (filtering, columns, picture, metrics, section-links, page-size, rich-text-html, section-title) - packages/schema — resumeDataSchema, page, templates, default - packages/fonts — expanded coverage on font helpers - packages/ai — resume sanitize and extraction template - packages/api — resume-access-policy - apps/web — error-message, locale, theme, pwa, dialogs/store, and the resume/move-item / section-actions / make-section-item helpers Adds jsdom polyfills (ResizeObserver, IntersectionObserver, scrollIntoView, matchMedia) and an explicit React Testing Library cleanup hook to vitest.setup.ts so portal- and overlay-based components work without per-test setup.
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { pageDimensionsAsMillimeters, pageDimensionsAsPixels } from "./page";
|
|
|
|
describe("pageDimensionsAsPixels", () => {
|
|
it("defines a4 dimensions matching ISO 216 at ~96 DPI", () => {
|
|
expect(pageDimensionsAsPixels.a4).toEqual({ width: 794, height: 1123 });
|
|
});
|
|
|
|
it("defines US letter dimensions", () => {
|
|
expect(pageDimensionsAsPixels.letter).toEqual({ width: 816, height: 1056 });
|
|
});
|
|
|
|
it("defines free-form dimensions same as a4", () => {
|
|
expect(pageDimensionsAsPixels["free-form"]).toEqual({ width: 794, height: 1123 });
|
|
});
|
|
|
|
it("uses portrait orientation (height > width) for all formats", () => {
|
|
expect(pageDimensionsAsPixels.a4.height).toBeGreaterThan(pageDimensionsAsPixels.a4.width);
|
|
expect(pageDimensionsAsPixels.letter.height).toBeGreaterThan(pageDimensionsAsPixels.letter.width);
|
|
});
|
|
});
|
|
|
|
describe("pageDimensionsAsMillimeters", () => {
|
|
it("defines a4 dimensions in millimeters per ISO 216", () => {
|
|
expect(pageDimensionsAsMillimeters.a4).toEqual({ width: "210mm", height: "297mm" });
|
|
});
|
|
|
|
it("defines letter dimensions in millimeters", () => {
|
|
expect(pageDimensionsAsMillimeters.letter).toEqual({ width: "216mm", height: "279mm" });
|
|
});
|
|
|
|
it("appends 'mm' unit suffix to all values", () => {
|
|
for (const [, dims] of Object.entries(pageDimensionsAsMillimeters)) {
|
|
expect(dims.width).toMatch(/mm$/);
|
|
expect(dims.height).toMatch(/mm$/);
|
|
}
|
|
});
|
|
|
|
it("provides all three formats (a4, letter, free-form)", () => {
|
|
expect(Object.keys(pageDimensionsAsMillimeters).sort()).toEqual(["a4", "free-form", "letter"]);
|
|
});
|
|
});
|