freellmapi / server /src /__tests__ /lib /budget.test.ts
Nryn215's picture
Deploy: Enable and enforce pure ELO-based Intelligence routing strategy
ed57015
Raw
History Blame Contribute Delete
1.15 kB
import { describe, it, expect } from 'vitest';
import { parseBudget } from '../../lib/budget.js';
describe('parseBudget', () => {
it('parses token-count labels to their upper bound', () => {
expect(parseBudget('~30M')).toBe(30_000_000);
expect(parseBudget('~120M')).toBe(120_000_000);
expect(parseBudget('~50-100M')).toBe(100_000_000); // upper bound of a range
expect(parseBudget('~1-3M')).toBe(3_000_000);
expect(parseBudget('~500K')).toBe(500_000);
});
it('ignores trailing rate hints but keeps the token estimate', () => {
expect(parseBudget('~2M (60-100/hr)')).toBe(2_000_000);
expect(parseBudget('~2-3M (200/hr)')).toBe(3_000_000);
});
it('returns 0 for rate limits / placeholders with no token magnitude (the NVIDIA case)', () => {
expect(parseBudget('free 路 40 RPM')).toBe(0);
expect(parseBudget('free 路 200/hr per IP')).toBe(0);
expect(parseBudget('promo (trial)')).toBe(0);
expect(parseBudget('~? (anon)')).toBe(0);
});
it('returns 0 for empty/missing input', () => {
expect(parseBudget('')).toBe(0);
expect(parseBudget(undefined as unknown as string)).toBe(0);
});
});