App versioning + the create page's missing top padding
Versioning: package.json carries the app version (0.1.2 here; one bump per task with `npm run version:bump`, patch 0-9 rolling into the minor at 10), baked into the build via lib/version.ts, reported by /api/healthz and shown in Settings next to the running commit. AGENTS.md documents the rule; the native suite checks both the API and the Settings row. Fix: on desktop the app header is hidden, so every page owns its top padding — /create was the only one without `lg:pt-10`, which slammed the Study deck / Make my homework switch against the top of the window while /homework had a comfortable gap. Both now sit at 40px; the wizard suite asserts the clearance and that the two pages stay in step (90 checks). SW -> freezmo-v50.
This commit is contained in:
parent
1f2e702b4e
commit
aac6befb0d
12 changed files with 124 additions and 10 deletions
|
|
@ -115,6 +115,33 @@ for (const viewport of [{ width: 390, height: 844 }, { width: 360, height: 740 }
|
|||
await context.close();
|
||||
}
|
||||
|
||||
/* 2b. the wizard clears the top edge on desktop ----------------------- */
|
||||
/* On desktop the app header is hidden (`lg:hidden`), so each page owns its
|
||||
top padding. /create was missing it and the mode switch sat flush against
|
||||
the top of the window while /homework had a comfortable gap. */
|
||||
{
|
||||
const { context, page } = await makePage(browser, { width: 1280, height: 900 });
|
||||
await seed(page, { decks: [] });
|
||||
const switcherTop = async () => {
|
||||
await page.waitForTimeout(700);
|
||||
return page.evaluate(() => {
|
||||
const switcher = document.querySelector('[role="group"][aria-label="Study deck or homework"]');
|
||||
return switcher ? Math.round(switcher.getBoundingClientRect().top) : null;
|
||||
});
|
||||
};
|
||||
await page.goto(`${BASE}/create`, { waitUntil: "networkidle" });
|
||||
const createTop = await switcherTop();
|
||||
check("create: the mode switch clears the top edge on desktop", createTop !== null && createTop >= 24, `${createTop}px`);
|
||||
await page.goto(`${BASE}/homework`, { waitUntil: "networkidle" });
|
||||
const homeworkTop = await switcherTop();
|
||||
check(
|
||||
"create and homework keep the same clearance",
|
||||
homeworkTop !== null && homeworkTop >= 24 && createTop !== null && Math.abs(homeworkTop - createTop) <= 4,
|
||||
`${createTop}px vs ${homeworkTop}px`,
|
||||
);
|
||||
await context.close();
|
||||
}
|
||||
|
||||
/* 3. reduced motion: bar still pinned, wizard usable ----------------- */
|
||||
{
|
||||
const { context, page } = await makePage(browser, { reducedMotion: "reduce" });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue