42 lines
1.7 KiB
TypeScript
42 lines
1.7 KiB
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { mkdtempSync, readFileSync } from "node:fs";
|
|
import { tmpdir } from "node:os";
|
|
import { join } from "node:path";
|
|
|
|
import {
|
|
getConfiguredServiceTier,
|
|
normalizeServiceTier,
|
|
resolveProviderServiceTier,
|
|
setConfiguredServiceTier,
|
|
} from "../src/model/service-tier.js";
|
|
|
|
test("normalizeServiceTier accepts supported values only", () => {
|
|
assert.equal(normalizeServiceTier("priority"), "priority");
|
|
assert.equal(normalizeServiceTier("standard_only"), "standard_only");
|
|
assert.equal(normalizeServiceTier("FAST"), undefined);
|
|
assert.equal(normalizeServiceTier(undefined), undefined);
|
|
});
|
|
|
|
test("setConfiguredServiceTier persists and clears settings.json values", () => {
|
|
const dir = mkdtempSync(join(tmpdir(), "feynman-service-tier-"));
|
|
const settingsPath = join(dir, "settings.json");
|
|
|
|
setConfiguredServiceTier(settingsPath, "priority");
|
|
assert.equal(getConfiguredServiceTier(settingsPath), "priority");
|
|
|
|
const persisted = JSON.parse(readFileSync(settingsPath, "utf8")) as { serviceTier?: string };
|
|
assert.equal(persisted.serviceTier, "priority");
|
|
|
|
setConfiguredServiceTier(settingsPath, undefined);
|
|
assert.equal(getConfiguredServiceTier(settingsPath), undefined);
|
|
});
|
|
|
|
test("resolveProviderServiceTier filters unsupported provider+tier pairs", () => {
|
|
assert.equal(resolveProviderServiceTier("openai", "priority"), "priority");
|
|
assert.equal(resolveProviderServiceTier("openai-codex", "flex"), "flex");
|
|
assert.equal(resolveProviderServiceTier("anthropic", "standard_only"), "standard_only");
|
|
assert.equal(resolveProviderServiceTier("anthropic", "priority"), undefined);
|
|
assert.equal(resolveProviderServiceTier("google", "priority"), undefined);
|
|
});
|