data: sync catalog to 404 hacks + bump fixture counts

Adds Hidden Place, Crippling Medical Debt Edition (with self-hosted
boxart banner), and Grimm/Conviction/Miragea's Traveler; restores
Crystal Inheritance to Complete. Playwright fixtures updated (404, PC 83,
New Experience 173, Difficulty 127, QoL 94, Complete 341, GBA 203, Beta 32).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ginnoir
2026-07-06 18:52:51 -05:00
co-authored by Claude Opus 4.8
parent 24811d7950
commit 3562042bc7
3 changed files with 325 additions and 27 deletions
+14 -14
View File
@@ -11,22 +11,22 @@ 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('399');
await expect(heroStats).toContainText('404');
await expect(heroStats).toContainText('hacks');
await expect(heroStats).toContainText('Platforms');
await expect(heroStats).toContainText('GBA 202');
await expect(heroStats).toContainText('PC 79');
await expect(heroStats).toContainText('GBA 203');
await expect(heroStats).toContainText('PC 83');
await expect(heroStats).toContainText('NDS 50');
await expect(heroStats).toContainText('GBC 37');
await expect(heroStats).toContainText('Types');
await expect(heroStats).toContainText('Expansion 166');
await expect(heroStats).toContainText('New Experience 168');
await expect(heroStats).toContainText('Difficulty 126');
await expect(heroStats).toContainText('QoL 90');
await expect(heroStats).toContainText('New Experience 173');
await expect(heroStats).toContainText('Difficulty 127');
await expect(heroStats).toContainText('QoL 94');
await expect(heroStats).toContainText('Status');
await expect(heroStats).toContainText('Complete 339');
await expect(heroStats).toContainText('Complete 341');
await expect(heroStats).toContainText('Ongoing 30');
await expect(heroStats).toContainText('Beta 29');
await expect(heroStats).toContainText('Beta 32');
});
test('homepage stat cards are polished and responsive', async ({ page }) => {
@@ -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+202/ })).toHaveAttribute('href', '/browse/platform/gba/');
await expect(browse.getByRole('link', { name: /Difficulty\s+126/ })).toHaveAttribute(
await expect(browse.getByRole('link', { name: /GBA\s+203/ })).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+339/ })).toHaveAttribute(
await expect(browse.getByRole('link', { name: /Complete\s+341/ })).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(399);
await expect(catalogCards).toHaveCount(404);
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(202);
await expect(catalogCards).toHaveCount(203);
await page.getByLabel('Difficulty').check();
await expect(catalogCards.first()).toBeVisible();
@@ -194,6 +194,6 @@ test('browse pages render static grouped lists', async ({ page }) => {
await page.goto('/browse/type/difficulty/');
await expect(page.getByRole('heading', { name: 'Difficulty' })).toBeVisible();
await expect(page.locator('[data-card]:visible')).toHaveCount(126);
await expect(page.locator('[data-card]:visible')).toHaveCount(127);
await expect(page.getByRole('link', { name: /Open Pokémon Radical Red/ })).toBeVisible();
});