Files
quasar/plans/gestor-coleccion-plan-phase-4-complete.md
Benito Rodríguez a702310da4 feat: add datVerifier and tests
- Añade `datVerifier` con `parseDat` y `verifyHashesAgainstDat`
- Añade tests y fixture XML para validar matching por CRC/MD5/SHA1/size
- Añade `fast-xml-parser` en `backend/package.json` (devDependency)
2026-02-09 18:50:11 +01:00

1.3 KiB

Phase 4 Complete: DAT verifier

TL;DR: Implementado datVerifier para parsear archivos DAT (XML) y verificar hashes de ROMs (CRC/MD5/SHA1/size). Se añadieron tests TDD y una fixture XML; los tests específicos pasan y se aplicó un parche menor de calidad.

Files created/changed:

  • backend/src/services/datVerifier.ts
  • backend/tests/services/datVerifier.spec.ts
  • backend/tests/fixtures/sample.dat.xml
  • backend/package.json (se añadió fast-xml-parser en devDependencies)

Functions created/changed:

  • parseDat(xml: string): DatDatabase — parsea y normaliza la estructura DAT a un modelo en memoria.
  • verifyHashesAgainstDat(datDb: DatDatabase, hashes): {gameName, romName, matchedOn} | null — verifica hashes contra el DAT y devuelve la coincidencia.

Tests created/changed:

  • backend/tests/services/datVerifier.spec.ts — cubre parsing, match por CRC/MD5/SHA1/size y ausencia de match.
  • backend/tests/fixtures/sample.dat.xml — fixture usada por las pruebas.

Review Status: APPROVED with minor recommendations

Git Commit Message: feat: add datVerifier and tests

  • Añade datVerifier con parseDat y verifyHashesAgainstDat
  • Añade tests y fixture XML para validar matching por CRC/MD5/SHA1/size
  • Añade fast-xml-parser en backend/package.json (devDependency)