- 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)
2.6 KiB
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 usando7z -sltyunzip -lcomo fallback.
Tests created/changed:
backend/tests/services/archiveReader.spec.ts— cubre:- listado con salida simulada de
7z -slt - fallback a
unzip -lsi7zfalla - comportamiento para formatos no soportados
- listado con salida simulada de
Review Status: APPROVED
Git Commit Message: feat: add archive reader and tests
- Añade
archiveReaderque lista entradas en ZIP/7z con fallback aunzip - Añade tests unitarios que mockean
child_process.execpara 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
- package.json
- .yarnrc.yml
- prisma-client/package.json
Files generados por herramientas (no necesariamente versionadas):
- prisma-client/client/* (Prisma Client generado)
- node_modules/.prisma/client/* (artefacto runtime generado)
Functions / cambios clave:
- Ajustes en
backend/tests/models/game.spec.tspara 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 elgenerator clientpara 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
Git Commit Message: feat: backend base, Prisma schema, client gen and tests
- Añade/ajusta
backendpara usar Prisma y Vitest - Genera cliente Prisma y corrige resoluciones PnP/node-modules
- Actualiza tests para cargar cliente generado y pasar TDD