Files
AtreidesAssetsFree/tests/ui/year-range.test.mjs
T
2026-10-29 11:57:29 +01:00

73 lines
2.8 KiB
JavaScript

// Generated, do not edit. sha256:c2c50da68059eb5b91507e98e3bdb52f6ec85d33f1dfafa7fb651d37c5365fc5
import { describe, it } from 'node:test';
import assert from 'node:assert/strict';
const { ALL_YEARS, choiceToText, choiceFromText, withoutYear, yearsIn } =
await import('../../client/wealth/year-range.js');
const NU = new Date().getFullYear();
describe('choiceToText / choiceFromText: heen en terug', () => {
it('schrijft één jaar als één getal en een reeks met een streepje', () => {
assert.equal(choiceToText({ van: 2026, tot: 2026 }), '2026');
assert.equal(choiceToText({ van: 2022, tot: 2024 }), '2022-2024');
assert.equal(choiceToText(ALL_YEARS), 'alles');
});
it('leest zijn eigen vorm weer terug', () => {
for (const k of [ALL_YEARS, { van: 2026, tot: 2026 }, { van: 2022, tot: 2024 }])
assert.deepEqual(choiceFromText(choiceToText(k)), k);
});
it('ZET EEN OMGEKEERDE REEKS RECHT', () => {
assert.deepEqual(choiceFromText('2024-2022'), { van: 2022, tot: 2024 });
});
it('VALT TERUG OP HET LOPENDE JAAR bij iets onleesbaars, in plaats van te struikelen', () => {
for (const rommel of ['', 'onzin', '20xx', '202', null, undefined, '2026-'])
assert.deepEqual(choiceFromText(rommel), { van: NU, tot: NU }, `bij ${JSON.stringify(rommel)}`);
});
it('leest een getal net zo goed als een tekst', () => {
assert.deepEqual(choiceFromText(2026), { van: 2026, tot: 2026 });
});
});
describe('withoutYear: een jaar wegdrukken', () => {
it('haalt het aangeklikte jaar eruit ÉN alles wat ouder is', () => {
assert.deepEqual(withoutYear({ van: 2020, tot: 2026 }, 2022), { van: 2023, tot: 2026 });
});
it('GEEFT "ALLES" bij het nieuwste jaar en niet een lege keuze', () => {
assert.equal(withoutYear({ van: 2020, tot: 2026 }, 2026), ALL_YEARS);
assert.equal(withoutYear({ van: 2026, tot: 2026 }, 2026), ALL_YEARS, 'ook als het het enige jaar is');
});
it('geeft "alles" bij een jaar dat nog nieuwer is dan de reeks', () => {
assert.equal(withoutYear({ van: 2020, tot: 2024 }, 2030), ALL_YEARS);
});
it('laat "alles" met rust en overleeft een onzinnig jaar', () => {
assert.equal(withoutYear(ALL_YEARS, 2024), ALL_YEARS);
assert.deepEqual(withoutYear({ van: 2020, tot: 2026 }, NaN), { van: 2020, tot: 2026 });
assert.deepEqual(withoutYear({ van: 2020, tot: 2026 }, undefined), { van: 2020, tot: 2026 });
});
it('muteert de meegegeven keuze niet', () => {
const k = { van: 2020, tot: 2026 };
withoutYear(k, 2022);
assert.deepEqual(k, { van: 2020, tot: 2026 });
});
});
describe('yearsIn', () => {
it('somt de jaren oplopend op', () => {
assert.deepEqual(yearsIn({ van: 2022, tot: 2024 }), [2022, 2023, 2024]);
assert.deepEqual(yearsIn({ van: 2026, tot: 2026 }), [2026]);
});
it('geeft er GEEN bij "alles"', () => {
assert.deepEqual(yearsIn(ALL_YEARS), []);
});
});