feat(h5): update skin scoring, age display and capture countdown
This commit is contained in:
+12
-4
@@ -7,16 +7,24 @@ for (const raw of [20, 24, 28, 40, 50, 24.6, null]) {
|
||||
if (raw == null) delete result.skin_age; else result.skin_age = { value: raw };
|
||||
const before = JSON.stringify(result);
|
||||
const vm = SS.buildViewModel(result, SS.MOCK_SIDE, { realAge });
|
||||
assert.equal(vm.skinAgeRaw, raw); assert.equal(vm.skinAgeDisplay, raw);
|
||||
assert.equal(vm.ageClampNote, ''); assert.equal(SS.reportSkinAge(vm, result), raw);
|
||||
const expected = raw == null || realAge == null ? raw : Math.max(realAge - 5, Math.min(realAge + 5, raw));
|
||||
assert.equal(vm.skinAgeRaw, raw); assert.equal(vm.skinAgeDisplay, expected);
|
||||
assert.equal(Boolean(vm.ageClampNote), expected != null && expected !== raw);
|
||||
assert.equal(SS.reportSkinAge(vm, result), expected);
|
||||
assert.equal(JSON.stringify(result), before);
|
||||
}
|
||||
}
|
||||
const legacy = { skinAgeRaw: 24, skinAgeDisplay: 57, realAge: 60 };
|
||||
assert.equal(SS.reportSkinAge(legacy), 24);
|
||||
assert.equal(SS.reportSkinAge(legacy), 55);
|
||||
assert.equal(legacy.skinAgeDisplay, 57, 'historical VM is not mutated');
|
||||
assert.equal(SS.reportSkinAge({ skinAgeDisplay: 57 }, { skin_age: { value: 24 } }), 24);
|
||||
assert.equal(SS.reportSkinAge({ skinAgeDisplay: 57 }), null, 'clamped display is never a raw-age fallback');
|
||||
assert.equal(SS.reportSkinAge({ skinAgeRaw: null, skinAgeDisplay: 57 }), null);
|
||||
assert.equal(SS.reportSkinAge({}, { skin_age: '24.6' }), 24.6);
|
||||
console.log('PASS: raw age across actual-age/decimal/missing cases; old display ignored; legacy payload fallback; no mutation or invented age');
|
||||
for (const [raw, expected] of [[24,25],[25,25],[30,30],[35,35],[36,35]]) {
|
||||
assert.equal(SS.reportSkinAge({skinAgeRaw:raw,realAge:30}),expected);
|
||||
}
|
||||
assert.equal(SS.reportSkinAge({skinAgeRaw:40,realAge:25}),30);
|
||||
assert.equal(SS.reportSkinAge({skinAgeRaw:10,realAge:25}),20);
|
||||
for(const raw of [NaN,Infinity,-1]) assert.equal(SS.reportSkinAge({skinAgeRaw:raw,realAge:25}),null);
|
||||
console.log('PASS: age display clamps ±5, boundaries/decimal/missing; original age and historical snapshots unchanged');
|
||||
|
||||
Reference in New Issue
Block a user