- Añade sección en README.md con instrucciones para p7zip (7z) y chdman - Actualiza .gitea/workflows/ci.yaml para intentar instalar p7zip-full y mame-tools/mame (continue-on-error) - Ajusta importService para validar ruta y pasar logger desde la ruta de import
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import path from 'path';
|
|
import fs from 'fs';
|
|
import { parseDat, verifyRomAgainstDat } from '../../src/services/datVerifier';
|
|
|
|
const fixturesDir = path.join(__dirname, '..', 'fixtures');
|
|
const datPath = path.join(fixturesDir, 'dats', 'sample-no-intro.dat.xml');
|
|
const simpleRom = path.join(fixturesDir, 'simple-rom.bin');
|
|
|
|
// Ejecutar siempre las pruebas de datVerifier. Dependencias externas (p.ej.
|
|
// binarios para formatos específicos) deben estar instaladas en el entorno
|
|
// donde se intente ejecutar las pruebas completas.
|
|
describe('services/datVerifier', () => {
|
|
it('parsea DAT xml', () => {
|
|
const xml = fs.readFileSync(datPath, 'utf8');
|
|
const parsed = parseDat(xml);
|
|
expect(parsed).toBeDefined();
|
|
});
|
|
|
|
it('verifica rom contra DAT', async () => {
|
|
const stats = fs.statSync(simpleRom);
|
|
const romMeta = {
|
|
filename: 'simple-rom.bin',
|
|
size: stats.size,
|
|
md5: 'placeholder',
|
|
sha1: 'placeholder',
|
|
crc32: 'placeholder',
|
|
} as any;
|
|
|
|
const xml = fs.readFileSync(datPath, 'utf8');
|
|
const parsed = parseDat(xml);
|
|
const res = await verifyRomAgainstDat(romMeta, parsed);
|
|
expect(res).toBeDefined();
|
|
});
|
|
});
|