feat: implement ROMs management UI (Phase 8)

Backend (Phase 8.1):
- Add ROMs endpoints: GET, GET/:id, PUT/:id/game, DELETE
- Add metadata search endpoint using IGDB/RAWG/TGDB
- Implement RomsController with ROM CRUD logic
- Add 12 comprehensive ROM endpoint tests
- Configure Vitest to run tests sequentially (threads: false)
- Auto-apply Prisma migrations in test setup

Frontend (Phase 8.2 + 8.3):
- Create ROM types: RomFile, Artwork, EnrichedGame
- Extend API client with roms and metadata namespaces
- Implement 5 custom hooks with TanStack Query
- Create ScanDialog, MetadataSearchDialog, RomCard components
- Rewrite roms.tsx page with table and all actions
- Add 37 comprehensive component and page tests

All 122 tests passing: 63 backend + 59 frontend
Lint: 0 errors, only unused directive warnings
This commit is contained in:
2026-02-12 19:52:59 +01:00
parent 630ebe0dc8
commit 571ac97f00
22 changed files with 2221 additions and 4 deletions

View File

@@ -10,8 +10,12 @@ describe('Games API', () => {
app = buildApp();
await app.ready();
// Limpiar base de datos antes de cada test
// Orden importante: relaciones de FK primero
await prisma.romFile.deleteMany();
await prisma.purchase.deleteMany();
await prisma.gamePlatform.deleteMany();
await prisma.artwork.deleteMany();
await prisma.priceHistory.deleteMany();
await prisma.game.deleteMany();
await prisma.platform.deleteMany();
});