games: active vs non-active games (games.library.active, owner toggles on the dashboard and each game ⋯ menu; nothing deleted). Header flyout and mobile menu list every game split into active / non-active; /trackers and home tiles show active chips and open both sections on hover; /start shows active with a non-active toggle. Games dashboard moved from /projects/game-tracker to /trackers/games (dashboard of active games only; old URL and /credits 301); deep trackers stay put
All checks were successful
Deploy production / deploy (push) Successful in 1m13s

This commit is contained in:
2026-10-25 20:23:15 +00:00
parent 60370d4572
commit 3ad13e5828
31 changed files with 31471 additions and 565 deletions

View File

@@ -380,7 +380,7 @@ test('shared dialogs have focus, Escape dismissal and mobile layouts without ove
).toBe(12345);
await page.setViewportSize({ width: 390, height: 844 });
for (const path of [
'/projects/game-tracker',
'/trackers/games',
'/projects/game-tracker/pokemon?game=platinum',
'/projects/game-tracker/osu',
'/projects/game-tracker/call-of-duty/black-ops-3'
@@ -410,7 +410,7 @@ test('illustrated library uses two Pokémon columns, follows selected games, and
).status
).toBe(200);
await page.setViewportSize({ width: 1440, height: 900 });
await page.goto('/projects/game-tracker');
await page.goto('/trackers/games');
await expect(page.locator('.collection-grid .game-row')).toHaveCount(5);
await expect(page.locator('.collection-grid .game-name')).toHaveText([
'Red',
@@ -471,7 +471,7 @@ test('illustrated library uses two Pokémon columns, follows selected games, and
[1280, 720]
]) {
await page.setViewportSize({ width, height });
await page.goto('/projects/game-tracker');
await page.goto('/trackers/games');
await expect(page.locator('.collection-grid .game-row')).toHaveCount(games.length);
const size = await page.evaluate(() => ({
height: document.documentElement.scrollHeight,
@@ -781,7 +781,7 @@ test('visible progress reacts to sightings, catches and completed stories withou
).status
).toBe(401);
await anonymous.dispose();
await page.goto('/projects/game-tracker');
await page.goto('/trackers/games');
await expect(
page.getByRole('progressbar', { name: 'National collection', exact: true })
).toHaveAttribute('aria-valuenow', first!);
@@ -991,7 +991,7 @@ test('BO2 armoury fits every gun, enforces caps and advances all rank progress w
await expect(card.getByRole('button', { name: 'Level up M27' })).toBeDisabled();
await expect(page.getByRole('img', { name: 'Prestige 3 emblem' })).toBeVisible();
const progress = await overall.getAttribute('aria-valuenow');
await page.goto('/projects/game-tracker');
await page.goto('/trackers/games');
await expect(
page.getByRole('progressbar', { name: 'Black Ops II progress', exact: true })
).toHaveAttribute('aria-valuenow', progress!);