- 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)
30 lines
1.3 KiB
Markdown
30 lines
1.3 KiB
Markdown
## 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)
|