mirror of
https://github.com/Patiun/com.gregkilmer.www.git
synced 2026-11-08 04:08:24 +00:00
Match the site to the approved designs
Denser star field, the page nebula, a favicon package, the filament banner without its box, the About portrait, Kashi and tea photos and Scorpius, the Store's own header, a header logo glow, a resume PDF that fills its page, one divider on the Library and Shelf, star-chart art for coverless favorites, Shelf Players, Play time and blog filters with a Show all fold, make kind pills on craft pages, and full-width closing bands. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { fitBody } from "../src/lib/resume-pdf.ts";
|
||||
import type { ResumeData } from "../src/lib/resume.ts";
|
||||
|
||||
const role = (n: number) =>
|
||||
({
|
||||
path: `Resume/Role ${n}.md`,
|
||||
title: `Role ${n}`,
|
||||
data: { type: "experience", title: `Role ${n}`, publish: true, company: "Example Co", role: `Role ${n}`, start: "2019-03", bullets: ["Built a thing that did something useful for people every day.", "Led a small team."] },
|
||||
}) as unknown as ResumeData["roles"][number];
|
||||
|
||||
const base: ResumeData = {
|
||||
name: "Greg Kilmer",
|
||||
headline: "Team Lead",
|
||||
summary: "A short summary.",
|
||||
stats: [],
|
||||
roles: [role(1)],
|
||||
earlier: [],
|
||||
projects: [],
|
||||
socials: [],
|
||||
updated: "2026-10-12",
|
||||
};
|
||||
|
||||
describe("resume PDF fit", () => {
|
||||
it("opens a short resume up to fill its one page", async () => {
|
||||
const medium = { ...base, roles: Array.from({ length: 6 }, (_, i) => role(i)) };
|
||||
const fitted = await fitBody(medium);
|
||||
expect(fitted.pages).toBe(1);
|
||||
expect(fitted.end).toBeLessThanOrEqual(792 - 70);
|
||||
// At normal spacing six short roles end well above the middle of the page.
|
||||
expect(fitted.end).toBeGreaterThan(560);
|
||||
});
|
||||
|
||||
it("leaves a resume that runs past one page alone", async () => {
|
||||
const long = await fitBody({ ...base, roles: Array.from({ length: 12 }, (_, i) => role(i)) });
|
||||
expect(long.pages).toBeGreaterThan(1);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user