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) {
|
||||
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})`);
|
||||
}
|
||||
return n;
|
||||
|
|
|
|||
|
|
@ -163,6 +163,13 @@ test('(B9) lesSyklus kaster ved ufullstendig KR i frontmatter', async (t) => {
|
|||
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', () => {
|
||||
assert.throws(() => lesSyklus(join(ROOT, 'tests/fixtures/finnes-ikke')), /finnes ikke/i);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue