fix(ci): restore control-ui and provider policy checks

This commit is contained in:
Peter Steinberger
2026-04-07 10:10:06 +01:00
parent 991e25b880
commit 34c78d3ba4
3 changed files with 26 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
import { describe, expect, it } from "vitest";
import type { ModelDefinitionConfig } from "../config/types.models.js";
import type { ModelDefinitionConfig, ModelProviderConfig } from "../config/types.models.js";
import { resolveBundledProviderPolicySurface } from "./provider-public-artifacts.js";
function createModel(id: string, name: string): ModelDefinitionConfig {
@@ -71,9 +71,9 @@ describe("provider public artifacts", () => {
const surface = resolveBundledProviderPolicySurface("openai");
expect(surface?.normalizeConfig).toBeTypeOf("function");
const providerConfig = {
const providerConfig: ModelProviderConfig = {
baseUrl: "https://api.openai.com/v1",
api: "openai-completions" as const,
api: "openai-completions",
models: [createModel("gpt-5", "gpt-5")],
};
expect(

View File

@@ -0,0 +1,19 @@
import { readFileSync } from "node:fs";
import path from "node:path";
import { describe, expect, it } from "vitest";
import { asNullableRecord, asOptionalRecord } from "./record-coerce.js";
describe("record-coerce", () => {
it("keeps record coercion behavior for optional and nullable variants", () => {
expect(asOptionalRecord({ ok: true })).toEqual({ ok: true });
expect(asOptionalRecord(null)).toBeUndefined();
expect(asNullableRecord({ ok: true })).toEqual({ ok: true });
expect(asNullableRecord(null)).toBeNull();
});
it("stays isolated from utils.ts so browser bundles stay Node-free", () => {
const source = readFileSync(path.resolve("src/shared/record-coerce.ts"), "utf8");
expect(source).not.toContain("../utils.js");
});
});

View File

@@ -1,4 +1,7 @@
import { isRecord } from "../utils.js";
// Keep this local so browser bundles do not pull in src/utils.ts and its Node-only side effects.
function isRecord(value: unknown): value is Record<string, unknown> {
return value !== null && typeof value === "object";
}
export function asRecord(value: unknown): Record<string, unknown> {
return typeof value === "object" && value !== null ? (value as Record<string, unknown>) : {};