#!/usr/bin/env node /** * Lanceur des tests unitaires JS. * * Utilise le runner natif de Node (node:test), aucune dépendance npm. * Usage : node tests/js/run.js */ 'use strict'; const { run } = require('node:test'); const { spec } = require('node:test/reporters'); const fs = require('node:fs'); const path = require('node:path'); const testDir = __dirname; const files = fs .readdirSync(testDir) .filter((name) => name.endsWith('-test.js')) .sort() .map((name) => path.join(testDir, name)); if (files.length === 0) { console.error('Aucun fichier *-test.js trouvé dans ' + testDir); process.exit(1); } const stream = run({ files }); let failures = 0; stream.on('test:fail', () => { failures += 1; }); stream.on('error', (err) => { console.error(err); process.exitCode = 1; }); stream.compose(spec).pipe(process.stdout); stream.on('end', () => { if (failures > 0) { process.exitCode = 1; } });