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] }) })