| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- import { describe, expect, test } from "vitest";
- import type { SpecialSetting } from "@/types/special-settings";
- import {
- extractAnthropicEffortInfo,
- type AnthropicEffortOverrideInfo,
- } from "@/lib/utils/anthropic-effort";
- describe("extractAnthropicEffortInfo", () => {
- const cases: Array<{
- name: string;
- input: SpecialSetting[] | null | undefined;
- expected: AnthropicEffortOverrideInfo | null;
- }> = [
- {
- name: "null specialSettings returns null",
- input: null,
- expected: null,
- },
- {
- name: "undefined specialSettings returns null",
- input: undefined,
- expected: null,
- },
- {
- name: "empty array returns null",
- input: [],
- expected: null,
- },
- {
- name: "no effort-related settings returns null",
- input: [
- {
- type: "response_fixer",
- scope: "response",
- hit: true,
- fixersApplied: [],
- totalBytesProcessed: 0,
- processingTimeMs: 0,
- },
- ],
- expected: null,
- },
- {
- name: "anthropic_effort only (no override) returns original effort",
- input: [
- {
- type: "anthropic_effort",
- scope: "request",
- hit: true,
- effort: "medium",
- },
- ],
- expected: {
- originalEffort: "medium",
- overriddenEffort: null,
- isOverridden: false,
- },
- },
- {
- name: "anthropic_effort + override with changed:true returns overridden info",
- input: [
- {
- type: "anthropic_effort",
- scope: "request",
- hit: true,
- effort: "medium",
- },
- {
- type: "provider_parameter_override",
- scope: "provider",
- providerId: 1,
- providerName: "test",
- providerType: "claude",
- hit: true,
- changed: true,
- changes: [
- { path: "max_tokens", before: 1024, after: 1024, changed: false },
- { path: "output_config.effort", before: "medium", after: "high", changed: true },
- ],
- },
- ],
- expected: {
- originalEffort: "medium",
- overriddenEffort: "high",
- isOverridden: true,
- },
- },
- {
- name: "override with changed:false returns non-overridden info",
- input: [
- {
- type: "anthropic_effort",
- scope: "request",
- hit: true,
- effort: "high",
- },
- {
- type: "provider_parameter_override",
- scope: "provider",
- providerId: 1,
- providerName: "test",
- providerType: "claude",
- hit: true,
- changed: false,
- changes: [
- { path: "output_config.effort", before: "high", after: "high", changed: false },
- ],
- },
- ],
- expected: {
- originalEffort: "high",
- overriddenEffort: null,
- isOverridden: false,
- },
- },
- {
- name: "fallback: no anthropic_effort but override exists uses before as original",
- input: [
- {
- type: "provider_parameter_override",
- scope: "provider",
- providerId: 1,
- providerName: "test",
- providerType: "claude",
- hit: true,
- changed: true,
- changes: [{ path: "output_config.effort", before: "low", after: "max", changed: true }],
- },
- ],
- expected: {
- originalEffort: "low",
- overriddenEffort: "max",
- isOverridden: true,
- },
- },
- {
- name: "override with no effort path returns effort from anthropic_effort only",
- input: [
- {
- type: "anthropic_effort",
- scope: "request",
- hit: true,
- effort: "auto",
- },
- {
- type: "provider_parameter_override",
- scope: "provider",
- providerId: 1,
- providerName: "test",
- providerType: "claude",
- hit: true,
- changed: true,
- changes: [{ path: "max_tokens", before: 1024, after: 2048, changed: true }],
- },
- ],
- expected: {
- originalEffort: "auto",
- overriddenEffort: null,
- isOverridden: false,
- },
- },
- {
- name: "anthropic_effort with whitespace-only effort is ignored",
- input: [
- {
- type: "anthropic_effort",
- scope: "request",
- hit: true,
- effort: " ",
- },
- ],
- expected: null,
- },
- {
- name: "override changed:true but both originalEffort and overrideBefore are null returns null",
- input: [
- {
- type: "provider_parameter_override",
- scope: "provider",
- providerId: 1,
- providerName: "test",
- providerType: "claude",
- hit: true,
- changed: true,
- changes: [{ path: "output_config.effort", before: null, after: "high", changed: true }],
- },
- ],
- expected: null,
- },
- ];
- for (const { name, input, expected } of cases) {
- test(name, () => {
- expect(extractAnthropicEffortInfo(input)).toEqual(expected);
- });
- }
- });
|