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)
This commit is contained in:
29
plans/gestor-coleccion-plan-phase-4-complete.md
Normal file
29
plans/gestor-coleccion-plan-phase-4-complete.md
Normal file
@@ -0,0 +1,29 @@
|
||||
## 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)
|
||||
Reference in New Issue
Block a user