mirror of
https://github.com/murashit/codex-panel.git
synced 2026-07-22 17:30:31 +00:00
74 lines
2.3 KiB
TypeScript
74 lines
2.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { appServerRuntimeSettingsPatch } from "../../src/app-server/protocol/thread-settings";
|
|
import { approvalsReviewerOrNull, parseServiceTier } from "../../src/domain/runtime/policy";
|
|
import {
|
|
applyRuntimeSettingsPatchValue,
|
|
type RuntimeSettingsPatch,
|
|
runtimeCollaborationModeSettings,
|
|
} from "../../src/domain/runtime/thread-settings";
|
|
|
|
describe("app-server thread settings", () => {
|
|
it("applies defined thread setting values and omits undefined values", () => {
|
|
const update: RuntimeSettingsPatch = {};
|
|
|
|
applyRuntimeSettingsPatchValue(update, "model", "gpt-5.5");
|
|
applyRuntimeSettingsPatchValue(update, "effort", null);
|
|
applyRuntimeSettingsPatchValue(update, "serviceTier", undefined);
|
|
|
|
expect(update).toEqual({ model: "gpt-5.5", effort: null });
|
|
});
|
|
|
|
it.each([
|
|
["user", "user"],
|
|
["auto_review", "auto_review"],
|
|
["guardian_subagent", "guardian_subagent"],
|
|
["unknown", null],
|
|
] as const)("parses approvals reviewer value %s", (value, expected) => {
|
|
expect(approvalsReviewerOrNull(value)).toBe(expected);
|
|
});
|
|
|
|
it("builds collaboration mode payloads with built-in instructions", () => {
|
|
expect(runtimeCollaborationModeSettings("plan", "gpt-5.5", "high")).toEqual({
|
|
mode: "plan",
|
|
settings: {
|
|
model: "gpt-5.5",
|
|
reasoningEffort: "high",
|
|
developerInstructions: null,
|
|
},
|
|
});
|
|
});
|
|
|
|
it("converts runtime settings patches to app-server thread settings params", () => {
|
|
expect(
|
|
appServerRuntimeSettingsPatch({
|
|
collaborationMode: runtimeCollaborationModeSettings("plan", "gpt-5.5", "high"),
|
|
}),
|
|
).toEqual({
|
|
collaborationMode: {
|
|
mode: "plan",
|
|
settings: {
|
|
model: "gpt-5.5",
|
|
reasoning_effort: "high",
|
|
developer_instructions: null,
|
|
},
|
|
},
|
|
});
|
|
});
|
|
|
|
it.each([
|
|
"fast",
|
|
"standard",
|
|
"priority",
|
|
"default",
|
|
"flex",
|
|
"auto",
|
|
"catalog-tier",
|
|
])("accepts non-empty service tier id %s from config and app-server reports", (serviceTier) => {
|
|
expect(parseServiceTier(serviceTier)).toBe(serviceTier);
|
|
});
|
|
|
|
it.each(["", null])("ignores absent service tier value %s", (serviceTier) => {
|
|
expect(parseServiceTier(serviceTier)).toBeNull();
|
|
});
|
|
});
|