- 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)
1.3 KiB
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-parseren 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
datVerifierconparseDatyverifyHashesAgainstDat - Añade tests y fixture XML para validar matching por CRC/MD5/SHA1/size
- Añade
fast-xml-parserenbackend/package.json(devDependency)