Fix: canonical() und matchKnown() behandeln Zahlen wie Zeichenketten
canonical() und matchKnown() stützen sich auf normalizeToken(), das bei Nicht-Strings '' zurückgibt. Dies führt dazu, dass bereits geparste Zahlenwerte lautlos ignoriert werden: canonical(64) liefert '' statt '64', matchKnown(64, list) liefert null statt den gefundenen Wert. Die Behebung konvertiert Zahlen zu Zeichenketten, bevor sie normalizeToken() erreichen, ohne null/undefined zu ändern (diese ergeben weiterhin ''/'null). Alle 23 Tests grün. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -56,3 +56,29 @@ test('specsCompatible toleriert eine Verwechslung in der Teilenummer', () => {
|
||||
const b = { ...emptySpec(), capacityGb: 64, partNumber: 'M386A8K4OBM1-CRC4Y' };
|
||||
assert.equal(specsCompatible(a, b), true);
|
||||
});
|
||||
|
||||
test('matchKnown findet einen Zahlenwert in der Liste', () => {
|
||||
assert.equal(matchKnown(64, KNOWN.capacityGb), 64);
|
||||
assert.equal(matchKnown(128, KNOWN.capacityGb), 128);
|
||||
});
|
||||
|
||||
test('canonical behandelt Zahlen wie Zeichenketten', () => {
|
||||
assert.equal(canonical(64), canonical('64'));
|
||||
assert.equal(canonical(128), canonical('128'));
|
||||
});
|
||||
|
||||
test('canonical mit null ergibt Leerzeichenkette', () => {
|
||||
assert.equal(canonical(null), '');
|
||||
});
|
||||
|
||||
test('canonical mit undefined ergibt Leerzeichenkette', () => {
|
||||
assert.equal(canonical(undefined), '');
|
||||
});
|
||||
|
||||
test('matchKnown mit null ergibt null', () => {
|
||||
assert.equal(matchKnown(null, KNOWN.capacityGb), null);
|
||||
});
|
||||
|
||||
test('matchKnown mit undefined ergibt null', () => {
|
||||
assert.equal(matchKnown(undefined, KNOWN.capacityGb), null);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user