gestion_table_tournante_libre/test/projets.test.js

34 lines
1.4 KiB
JavaScript
Raw Normal View History

// © 2026 TechnoLibre (http://www.technolibre.ca)
// License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
// Le projet node n'expose aucun DOM et ne compile aucun composant : un module
// qui toucherait document ou window, ou qui importerait un composant Svelte,
// y échoue au lieu de passer sur un environnement que la série node ne doit
// pas fournir (§ 14.4, § 14.8).
import assert from 'node:assert/strict';
import { existsSync } from 'node:fs';
import { describe, test } from './lanceur.js';
describe('projet node', () => {
test('globalThis.document vaut undefined', () => {
assert.equal(globalThis.document, undefined);
});
test('globalThis.window vaut undefined', () => {
assert.equal(globalThis.window, undefined);
});
test('un composant Svelte ne se charge pas', async () => {
// Le composant existe, et son import échoue sur la lecture du source :
// sans greffon Svelte, l'analyse des imports de Vite rejette la syntaxe
// d'un .svelte, et sous « node --test » Node en refuse l'extension. Un
// refus venu d'ailleurs, comme un module qui lirait window au chargement,
// fait échouer l'épreuve au lieu de la satisfaire.
assert.ok(existsSync(new URL('../src/interface/App.svelte', import.meta.url)));
await assert.rejects(
import('../src/interface/App.svelte'),
/Failed to parse source for import analysis|Unknown file extension/,
);
});
});