56 lines
2.2 KiB
TypeScript
56 lines
2.2 KiB
TypeScript
import { describe, it, beforeEach } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import {
|
|
getPersistedCreditBalance,
|
|
getAllPersistedCreditBalances,
|
|
persistCreditBalance,
|
|
} from "../../src/lib/db/creditBalance.ts";
|
|
|
|
describe("creditBalance DB module", () => {
|
|
const testAccount = `test-credit-${Date.now()}`;
|
|
|
|
it("getPersistedCreditBalance returns null for unknown account", () => {
|
|
const result = getPersistedCreditBalance(`nonexistent-${Date.now()}`);
|
|
assert.equal(result, null, "should return null for unknown account");
|
|
});
|
|
|
|
it("persistCreditBalance stores and getPersistedCreditBalance retrieves", () => {
|
|
persistCreditBalance(testAccount, 42.5);
|
|
const result = getPersistedCreditBalance(testAccount);
|
|
assert.equal(result, 42.5, "should return persisted balance");
|
|
});
|
|
|
|
it("persistCreditBalance overwrites previous balance", () => {
|
|
persistCreditBalance(testAccount, 100);
|
|
persistCreditBalance(testAccount, 50);
|
|
const result = getPersistedCreditBalance(testAccount);
|
|
assert.equal(result, 50, "should return latest balance");
|
|
});
|
|
|
|
it("persistCreditBalance handles zero balance correctly", () => {
|
|
persistCreditBalance(testAccount, 0);
|
|
const result = getPersistedCreditBalance(testAccount);
|
|
assert.equal(result, 0, "zero balance should be stored and returned");
|
|
});
|
|
|
|
it("getAllPersistedCreditBalances returns all entries", () => {
|
|
const account1 = `test-credit-all-1-${Date.now()}`;
|
|
const account2 = `test-credit-all-2-${Date.now()}`;
|
|
persistCreditBalance(account1, 10);
|
|
persistCreditBalance(account2, 20);
|
|
const all = getAllPersistedCreditBalances();
|
|
assert.ok(all instanceof Map, "should return a Map");
|
|
assert.ok(all.has(account1), "should contain account1");
|
|
assert.ok(all.has(account2), "should contain account2");
|
|
assert.equal(all.get(account1), 10);
|
|
assert.equal(all.get(account2), 20);
|
|
});
|
|
|
|
it("getAllPersistedCreditBalances returns empty Map when no entries", () => {
|
|
// This test relies on there being entries from other tests, but the Map should always be returned
|
|
const all = getAllPersistedCreditBalances();
|
|
assert.ok(all instanceof Map, "should always return a Map");
|
|
});
|
|
});
|