73 lines
2.8 KiB
JavaScript
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), []);
|
|
});
|
|
});
|