src/index.test.ts
v0.2.1 · 1.7 KB
import { describe, expect, it } from 'vitest';
import * as kit from './index.js';
describe('package entry', () => {
it('exposes every namespace', () => {
expect(typeof kit.numbers).toBe('object');
expect(typeof kit.markets).toBe('object');
expect(typeof kit.ids).toBe('object');
expect(typeof kit.pending).toBe('object');
expect(typeof kit.writeBudget).toBe('object');
expect(typeof kit.rest).toBe('object');
expect(typeof kit.signer).toBe('object');
expect(typeof kit.orders).toBe('object');
});
it('flat exports match the namespaces (no silent collisions)', () => {
const namespaces = [
kit.numbers,
kit.markets,
kit.ids,
kit.pending,
kit.writeBudget,
kit.rest,
kit.signer,
kit.orders,
];
const seen = new Map<string, number>();
for (const ns of namespaces) {
for (const name of Object.keys(ns)) seen.set(name, (seen.get(name) ?? 0) + 1);
}
const collisions = [...seen.entries()].filter(([, n]) => n > 1).map(([name]) => name);
expect(collisions).toEqual([]);
for (const [name] of seen) {
expect((kit as Record<string, unknown>)[name]).toBeDefined();
}
});
it('exposes the headline functions flat', () => {
expect(typeof kit.quantizeSize).toBe('function');
expect(typeof kit.parseOrderBookDetails).toBe('function');
expect(typeof kit.parseJsonExact).toBe('function');
expect(typeof kit.createPendingMemory).toBe('function');
expect(typeof kit.createWriteWindow).toBe('function');
expect(typeof kit.createRestClient).toBe('function');
expect(typeof kit.createSignerClient).toBe('function');
expect(typeof kit.measureIocFill).toBe('function');
expect(typeof kit.planOrderSize).toBe('function');
});
});