fix(okr): somTall kaster paa Infinity, ikke bare NaN (patch-lane #7)
Number.isNaN fanget ikke Infinity/-Infinity -- target: 1e400 ga stille score 0 i stedet for kast. Bytt til Number.isFinite (negert).
This commit is contained in:
parent
ffb3c9fde7
commit
b10153692d
2 changed files with 8 additions and 1 deletions
|
|
@ -28,7 +28,7 @@ const KR_TYPER = ['committed', 'aspirational'];
|
||||||
|
|
||||||
function somTall(verdi, felt, hvor) {
|
function somTall(verdi, felt, hvor) {
|
||||||
const n = Number(verdi);
|
const n = Number(verdi);
|
||||||
if (verdi === null || verdi === undefined || String(verdi).trim() === '' || Number.isNaN(n)) {
|
if (verdi === null || verdi === undefined || String(verdi).trim() === '' || !Number.isFinite(n)) {
|
||||||
throw new Error(`${hvor}: ${felt} maa vaere et rent tall uten enhet (fikk: ${verdi})`);
|
throw new Error(`${hvor}: ${felt} maa vaere et rent tall uten enhet (fikk: ${verdi})`);
|
||||||
}
|
}
|
||||||
return n;
|
return n;
|
||||||
|
|
|
||||||
|
|
@ -163,6 +163,13 @@ test('(B9) lesSyklus kaster ved ufullstendig KR i frontmatter', async (t) => {
|
||||||
assert.throws(() => lesSyklus(dir), /kr1/i);
|
assert.throws(() => lesSyklus(dir), /kr1/i);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// somTall brukte Number.isNaN, som IKKE fanger Infinity/-Infinity -- kun NaN.
|
||||||
|
// target: 1e400 -> Number(1e400) === Infinity, en stille score 0 fremfor kast.
|
||||||
|
test('(B11) beregnScore kaster ved Infinity-felt', () => {
|
||||||
|
assert.throws(() => beregnScore({ baseline: 1, target: 1e400, naa: 2 }), /target/);
|
||||||
|
assert.throws(() => beregnScore({ baseline: -1e400, target: 10, naa: 2 }), /baseline/);
|
||||||
|
});
|
||||||
|
|
||||||
test('(B10) lesSyklus kaster naar katalogen ikke finnes', () => {
|
test('(B10) lesSyklus kaster naar katalogen ikke finnes', () => {
|
||||||
assert.throws(() => lesSyklus(join(ROOT, 'tests/fixtures/finnes-ikke')), /finnes ikke/i);
|
assert.throws(() => lesSyklus(join(ROOT, 'tests/fixtures/finnes-ikke')), /finnes ikke/i);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue