import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
import test from "node:test";
const component = readFileSync(
new URL("../src/components/admin/model-management.tsx", import.meta.url),
"utf8",
);
const globals = readFileSync(new URL("../src/app/globals.css", import.meta.url), "utf8");
const route = readFileSync(new URL("../src/app/api/admin/models/route.ts", import.meta.url), "utf8");
const mutationHandler = readFileSync(
new URL("../src/lib/admin/model-mutation-handler.ts", import.meta.url),
"utf8",
);
test("provider form keeps codes server-owned and API keys write-only", () => {
assert.doesNotMatch(component, /name="code"|code:\s*values\.code/);
assert.match(component, /代码预览(服务端生成)/);
assert.match(component, / {
assert.match(component, /onClick=\{\(\) => void discoverModels\(selectedProviderId\)\}>获取模型列表<\/Button>/);
assert.doesNotMatch(component, /title="获取供应商模型列表"[\s\S]*ReasonActionModal/);
assert.match(component, /adminRequestJson\("\/api\/admin\/models\/discover"/);
assert.match(component, /body: JSON\.stringify\(\{ providerId \}\)/);
assert.match(component, /未发现可用模型,请检查供应商配置后重试/);
assert.doesNotMatch(component, /可继续手工输入/);
assert.match(component, /name="providerModel" label="模型"[\s\S]*