feat: add archive reader and tests
- Añade `archiveReader` que lista entradas en ZIP/7z con fallback a `unzip` - Añade tests unitarios que mockean `child_process.exec` para validar parsing - Documenta dependencia de binarios en README y CI (pasos previos)
This commit is contained in:
@@ -1,8 +1,38 @@
|
||||
## Phase 3 Complete: ArchiveReader
|
||||
|
||||
TL;DR: Implementado `archiveReader` para listar entradas dentro de contenedores ZIP y 7z usando utilidades del sistema (`7z` y `unzip` como fallback). Añadidos tests unitarios que mockean las llamadas a `child_process.exec` para validar parsing y comportamiento de fallback.
|
||||
|
||||
**Files created/changed:**
|
||||
|
||||
- backend/src/services/archiveReader.ts
|
||||
- backend/tests/services/archiveReader.spec.ts
|
||||
|
||||
**Functions created/changed:**
|
||||
|
||||
- `listArchiveEntries(filePath, logger)` — lista entradas de ZIP/7z usando `7z -slt` y `unzip -l` como fallback.
|
||||
|
||||
**Tests created/changed:**
|
||||
|
||||
- `backend/tests/services/archiveReader.spec.ts` — cubre:
|
||||
- listado con salida simulada de `7z -slt`
|
||||
- fallback a `unzip -l` si `7z` falla
|
||||
- comportamiento para formatos no soportados
|
||||
|
||||
**Review Status:** APPROVED
|
||||
|
||||
**Git Commit Message:**
|
||||
feat: add archive reader and tests
|
||||
|
||||
- Añade `archiveReader` que lista entradas en ZIP/7z con fallback a `unzip`
|
||||
- Añade tests unitarios que mockean `child_process.exec` para validar parsing
|
||||
- Documenta dependencia de binarios en README y CI (pasos previos)
|
||||
|
||||
## Phase 3 Complete: Backend base y modelo de datos
|
||||
|
||||
Fase completada: configuré el backend mínimo (dependencias, Prisma schema), generé el cliente Prisma y aseguré que los tests TDD de backend pasan.
|
||||
|
||||
**Files created/changed:**
|
||||
|
||||
- backend/package.json
|
||||
- backend/prisma/schema.prisma
|
||||
- backend/tests/models/game.spec.ts
|
||||
@@ -11,18 +41,22 @@ Fase completada: configuré el backend mínimo (dependencias, Prisma schema), ge
|
||||
- prisma-client/package.json
|
||||
|
||||
**Files generados por herramientas (no necesariamente versionadas):**
|
||||
- prisma-client/client/* (Prisma Client generado)
|
||||
- node_modules/.prisma/client/* (artefacto runtime generado)
|
||||
|
||||
- prisma-client/client/\* (Prisma Client generado)
|
||||
- node_modules/.prisma/client/\* (artefacto runtime generado)
|
||||
|
||||
**Functions / cambios clave:**
|
||||
|
||||
- Ajustes en `backend/tests/models/game.spec.ts` para fallback de carga del cliente Prisma generado.
|
||||
- `backend/prisma/schema.prisma`: definición de modelos (Game, RomFile, Platform, Purchase, Artwork, Tag, PriceHistory) ya presente; ajustado el `generator client` para flujo de generación local.
|
||||
|
||||
**Tests created/changed:**
|
||||
|
||||
- backend/tests/models/game.spec.ts (modificado: mejor manejo de require/generación del cliente)
|
||||
- backend/tests/server.spec.ts (existente — pase verificable)
|
||||
|
||||
**Migraciones aplicadas durante pruebas:**
|
||||
|
||||
- `backend/prisma/migrations/20260208102247_init/migration.sql` (aplicada en DB temporal de test)
|
||||
|
||||
**Review Status:** APPROVED
|
||||
|
||||
Reference in New Issue
Block a user