Spaces:
Runtime error
Runtime error
| import { describe, it } from "node:test"; | |
| import assert from "node:assert/strict"; | |
| import { addXp, getXp } from "../../../src/lib/db/gamification"; | |
| import { calculateLevel } from "../../../src/lib/gamification/xp"; | |
| import { getDbInstance } from "../../../src/lib/db/core"; | |
| describe("DB Gamification — addXp level computation", () => { | |
| it("sets correct level for large initial XP", () => { | |
| const testKey = `test-addxp-level-${Date.now()}`; | |
| addXp(testKey, "invite_redeem", 50000); | |
| const xp = getXp(testKey); | |
| assert.ok(xp); | |
| assert.equal(xp.currentLevel, calculateLevel(50000)); | |
| // Cleanup | |
| const db = getDbInstance(); | |
| db.prepare("DELETE FROM user_levels WHERE api_key_id = ?").run(testKey); | |
| db.prepare("DELETE FROM xp_audit_log WHERE api_key_id = ?").run(testKey); | |
| }); | |
| it("sets level 1 for small initial XP", () => { | |
| const testKey = `test-addxp-small-${Date.now()}`; | |
| addXp(testKey, "request", 1); | |
| const xp = getXp(testKey); | |
| assert.ok(xp); | |
| assert.equal(xp.currentLevel, 1); | |
| // Cleanup | |
| const db = getDbInstance(); | |
| db.prepare("DELETE FROM user_levels WHERE api_key_id = ?").run(testKey); | |
| db.prepare("DELETE FROM xp_audit_log WHERE api_key_id = ?").run(testKey); | |
| }); | |
| }); | |