20 lines
854 B
JavaScript
20 lines
854 B
JavaScript
import {describe, expect, test} from "bun:test";
|
|
import {responseMetadata} from "./response-metadata.ts";
|
|
|
|
describe("response metadata", () => {
|
|
test("calculates output token throughput", () => {
|
|
const metadata = responseMetadata("rust.cat", "gpt-test", performance.now() - 2000, 40);
|
|
expect(metadata.providerId).toBe("rust.cat");
|
|
expect(metadata.model).toBe("gpt-test");
|
|
expect(metadata.durationMs).toBeGreaterThanOrEqual(1900);
|
|
expect(metadata.tokensPerSecond).toBeGreaterThanOrEqual(19);
|
|
expect(metadata.tokensPerSecond).toBeLessThanOrEqual(21);
|
|
});
|
|
|
|
test("keeps speed unavailable when provider omits token usage", () => {
|
|
const metadata = responseMetadata("local", "model", performance.now() - 100, undefined);
|
|
expect(metadata.outputTokens).toBeNull();
|
|
expect(metadata.tokensPerSecond).toBeNull();
|
|
});
|
|
});
|