import { test } from 'node:test'; import assert from 'node:assert/strict'; import { decoderEtat, encoderEtat, lireMode, ETAT_DEFAUT } from '../src/core/url.ts'; import { reduire } from '../src/core/state.ts'; test('aller-retour de l’état dans le hash', () => { const e = { couches: ['eau', 'vegetal'], dispositifs: ['noue', 'cuve'], temps: '2030' as const, parcours: 'pluie' }; assert.deepEqual(decoderEtat(encoderEtat(e)), e); }); test('état par défaut → hash vide, hash vide → état par défaut', () => { assert.equal(encoderEtat(ETAT_DEFAUT), ''); assert.deepEqual(decoderEtat(''), ETAT_DEFAUT); }); test('valeurs hostiles ignorées', () => { const e = decoderEtat('#c=eau,