data: sync catalog to 411 hacks + refresh fixture counts

Adds Soulgold, Unchosen, Soulstones, and Soulstones 2: Time Wardens, plus the
new `RPG Maker MV` base route.

Playwright fixtures were two entries stale from the Timeless Diamond /
Spaceless Pearl sync, so they are reset to measured counts rather than deltas:
411 total, GBA 205, PC 86, NDS 52, Expansion 169, New Experience 179, QoL 97,
Complete 348, and the toHaveCount assertions (411 / GBA 205).

Verified: npm run check (0 errors, vitest 9/9), npm run build (486 pages,
banners 411/411), CI=1 npm run test:ui (8/8).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
ginnoirandClaude Opus 5 committed 2026-08-10 21:01:51 -05:00
1 parent 1ac9751073
commit c89dbe7f7d
3 files changed
+286 -60

No files matched your search

+12 -12
View File
@@ -11,20 +11,20 @@ test('homepage presents balanced navigation and facet summaries', async ({ page
await expect(primaryNav.getByRole('link', { name: 'Difficulty' })).toHaveCount(0);
const heroStats = page.locator('.hero-stats');
await expect(heroStats).toContainText('405');
await expect(heroStats).toContainText('411');
await expect(heroStats).toContainText('hacks');
await expect(heroStats).toContainText('Platforms');
await expect(heroStats).toContainText('GBA 204');
await expect(heroStats).toContainText('PC 83');
await expect(heroStats).toContainText('NDS 50');
await expect(heroStats).toContainText('GBA 205');
await expect(heroStats).toContainText('PC 86');
await expect(heroStats).toContainText('NDS 52');
await expect(heroStats).toContainText('GBC 37');
await expect(heroStats).toContainText('Types');
await expect(heroStats).toContainText('Expansion 166');
await expect(heroStats).toContainText('New Experience 174');
await expect(heroStats).toContainText('Expansion 169');
await expect(heroStats).toContainText('New Experience 179');
await expect(heroStats).toContainText('Difficulty 127');
await expect(heroStats).toContainText('QoL 94');
await expect(heroStats).toContainText('QoL 97');
await expect(heroStats).toContainText('Status');
await expect(heroStats).toContainText('Complete 342');
await expect(heroStats).toContainText('Complete 348');
await expect(heroStats).toContainText('Ongoing 30');
await expect(heroStats).toContainText('Beta 32');
});
@@ -71,12 +71,12 @@ test('homepage browse summary links to grouped facet pages', async ({ page }) =>
const browse = page.getByRole('region', { name: 'Browse by catalog facets' });
await expect(browse.getByRole('heading', { name: 'Browse the archive' })).toBeVisible();
await expect(browse.getByRole('link', { name: /GBA\s+204/ })).toHaveAttribute('href', '/browse/platform/gba/');
await expect(browse.getByRole('link', { name: /GBA\s+205/ })).toHaveAttribute('href', '/browse/platform/gba/');
await expect(browse.getByRole('link', { name: /Difficulty\s+127/ })).toHaveAttribute(
'href',
'/browse/type/difficulty/',
);
await expect(browse.getByRole('link', { name: /Complete\s+342/ })).toHaveAttribute(
await expect(browse.getByRole('link', { name: /Complete\s+348/ })).toHaveAttribute(
'href',
'/browse/status/complete/',
);
@@ -88,7 +88,7 @@ test('catalog search and filters update visible card count', async ({ page }) =>
await expect(page).toHaveTitle(/ROM Hack Archive/);
await expect(page.getByRole('heading', { name: 'ROM Hack Archive' })).toBeVisible();
const catalogCards = page.locator('[data-card-grid] [data-card]:visible');
await expect(catalogCards).toHaveCount(405);
await expect(catalogCards).toHaveCount(411);
await page.getByPlaceholder('Search hacks').fill('Radical Red');
await expect(catalogCards).toHaveCount(5);
@@ -96,7 +96,7 @@ test('catalog search and filters update visible card count', async ({ page }) =>
await page.getByPlaceholder('Search hacks').fill('');
await page.getByLabel('GBA').check();
await expect(catalogCards).toHaveCount(204);
await expect(catalogCards).toHaveCount(205);
await page.getByLabel('Difficulty').check();
await expect(catalogCards.first()).toBeVisible();