NODEDC_1C/llm_normalizer/backend/tests/assistantProviderExecutionP...

34 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { createAssistantProviderExecutionPolicy } from "../src/services/assistantProviderExecutionPolicy";
describe("assistantProviderExecutionPolicy", () => {
const policy = createAssistantProviderExecutionPolicy();
it("normalizes provider values into explicit execution modes", () => {
expect(policy.normalizeProvider("openai")).toBe("openai");
expect(policy.normalizeProvider("local")).toBe("local");
expect(policy.normalizeProvider("other")).toBeNull();
});
it("detects llm runtime unavailability from auth and api-key failures", () => {
expect(policy.detectLlmRuntimeUnavailable("error:OpenAI API key is missing")).toBe(true);
expect(policy.detectLlmRuntimeUnavailable("authentication failed")).toBe(true);
expect(policy.detectLlmRuntimeUnavailable("normalize_failed")).toBe(false);
});
it("builds explicit mock execution contract for living-mode deep fallback", () => {
const state = policy.resolveProviderExecutionState({
llmProvider: "openai",
useMock: true,
baseUrl: "http://localhost:1234/v1"
});
expect(state.provider_mode).toBe("mock");
expect(state.normalized_provider).toBe("openai");
expect(state.use_mock).toBe(true);
expect(state.base_url_configured).toBe(true);
expect(state.living_mode_forced_deep).toBe(true);
expect(state.living_mode_forced_reason).toBe("mock_mode_keeps_deep_pipeline");
});
});