mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-13 18:32:12 +03:00
Adds an opt-in customModels[].isFree flag so a self-hosted local model can be marked free-tier without touching the curated free-model catalog (providerHasFreeModels stays curated). 9/9 focused tests passing across the DB round-trip, schema tri-state validation, and free-model detection. Thanks!
21 lines
1.1 KiB
TypeScript
21 lines
1.1 KiB
TypeScript
import { describe, it } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { providerModelMutationSchema } from "../../src/shared/validation/schemas/provider.ts";
|
|
|
|
describe("providerModelMutationSchema isFree", () => {
|
|
it("isFree:true accepted", () => {
|
|
assert.equal(providerModelMutationSchema.safeParse({ provider: "p", modelId: "m", isFree: true }).success, true);
|
|
});
|
|
it("old payload without isFree still valid", () => {
|
|
assert.equal(providerModelMutationSchema.safeParse({ provider: "p", modelId: "m" }).success, true);
|
|
});
|
|
it("rejects isFree:0 and isFree:\"yes\"", () => {
|
|
assert.equal(providerModelMutationSchema.safeParse({ provider: "p", modelId: "m", isFree: 0 as any }).success, false);
|
|
assert.equal(providerModelMutationSchema.safeParse({ provider: "p", modelId: "m", isFree: "yes" as any }).success, false);
|
|
});
|
|
it("nullable true/false/null accepted", () => {
|
|
assert.equal(providerModelMutationSchema.safeParse({ provider: "p", modelId: "m", isFree: null }).success, true);
|
|
assert.equal(providerModelMutationSchema.safeParse({ provider: "p", modelId: "m", isFree: false }).success, true);
|
|
});
|
|
});
|