Files
wx_pbzc/tests/badge-state.test.js
T
2026-07-29 11:31:25 +08:00

28 lines
947 B
JavaScript

const test = require('node:test')
const assert = require('node:assert/strict')
const { getBadgeProgress, getBadgeCelebration } = require('../utils/badge-state')
const badges = [{ days: 3 }, { days: 7 }, { days: 14 }]
test('badge progress remains zero before the first milestone', () => {
assert.equal(getBadgeProgress(badges, 1), 0)
assert.equal(getBadgeProgress(badges, 2), 0)
assert.equal(getBadgeProgress(badges, 3), 4)
})
test('badge celebration keeps prior milestones seen after records are deleted', () => {
const afterDeletion = getBadgeCelebration([3], [])
assert.deepEqual(afterDeletion, { newly: [], seen: [3] })
const afterRetraining = getBadgeCelebration(afterDeletion.seen, [3])
assert.deepEqual(afterRetraining, { newly: [], seen: [3] })
})
test('badge celebration only reports milestones never seen before', () => {
assert.deepEqual(getBadgeCelebration([3], [3, 7]), {
newly: [7],
seen: [3, 7]
})
})