Files
quasar/plans/gestor-coleccion-plan-phase-3-complete.md
Benito Rodríguez 0526ff960f 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)
2026-02-09 18:30:00 +01:00

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 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
  • 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.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

Git Commit Message: feat: backend base, Prisma schema, client gen and tests

  • Añade/ajusta backend para usar Prisma y Vitest
  • Genera cliente Prisma y corrige resoluciones PnP/node-modules
  • Actualiza tests para cargar cliente generado y pasar TDD