修复主题恢复与勋章状态

This commit is contained in:
2026-07-29 11:31:25 +08:00
parent 3db170c4b9
commit 11d49a26df
5 changed files with 80 additions and 31 deletions
+27
View File
@@ -0,0 +1,27 @@
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]
})
})