Files
memind/billing-recharge.test.mjs
John 2e14873f2d Initial commit: Memind H5 portal with MindSpace, Plaza, and agent jobs.
Track application source and tests; exclude local env, user workspaces, and runtime data via .gitignore.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-15 15:04:43 -07:00

35 lines
1.3 KiB
JavaScript

import assert from 'node:assert/strict';
import test from 'node:test';
import {
buildInsufficientBalancePayload,
isAllowedRechargeAmount,
loadRechargeConfig,
} from './billing-recharge.mjs';
test('loadRechargeConfig parses tier list', () => {
const previous = process.env.H5_RECHARGE_TIERS_CENTS;
process.env.H5_RECHARGE_TIERS_CENTS = '500,1000,3000';
try {
const config = loadRechargeConfig();
assert.deepEqual(config.tiersCents, [500, 1000, 3000]);
assert.equal(config.minRechargeCents, 500);
} finally {
if (previous === undefined) delete process.env.H5_RECHARGE_TIERS_CENTS;
else process.env.H5_RECHARGE_TIERS_CENTS = previous;
}
});
test('isAllowedRechargeAmount only accepts configured tiers', () => {
const config = { tiersCents: [500, 1000, 3000], minRechargeCents: 500 };
assert.equal(isAllowedRechargeAmount(1000, config), true);
assert.equal(isAllowedRechargeAmount(2000, config), false);
});
test('buildInsufficientBalancePayload includes recharge hints', () => {
const config = { tiersCents: [500, 1000], minRechargeCents: 500 };
const payload = buildInsufficientBalancePayload(0, config);
assert.equal(payload.code, 'INSUFFICIENT_BALANCE');
assert.equal(payload.balanceCents, 0);
assert.deepEqual(payload.suggestedTiers, [500, 1000]);
});