34 lines
1.4 KiB
JavaScript
34 lines
1.4 KiB
JavaScript
|
|
// © 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/,
|
||
|
|
);
|
||
|
|
});
|
||
|
|
});
|