cjovs commited on
Commit
570187b
·
verified ·
1 Parent(s): c2a5120

Update plugin binding regression tests

Browse files

Cover codex custom endpoint auth aliases and replacement of previously managed codex provider args.

packages/plugins/plugin-Custom-LLM-Endpoint/tests/agent-binding.spec.ts CHANGED
@@ -39,7 +39,20 @@ describe("agent binding helpers", () => {
39
  OPENAI_API_BASE: { type: "plain", value: "https://example.test/v1" },
40
  OPENAI_API_BASE_URL: { type: "plain", value: "https://example.test/v1" },
41
  },
42
- extraArgs: ["-c", "openai_base_url=\"https://example.test/v1\""],
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  model: "gpt-5.4",
44
  paperclipGlobalOpenAiProviderBinding: {
45
  providerId: "provider-1",
@@ -51,4 +64,64 @@ describe("agent binding helpers", () => {
51
  },
52
  });
53
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  });
 
39
  OPENAI_API_BASE: { type: "plain", value: "https://example.test/v1" },
40
  OPENAI_API_BASE_URL: { type: "plain", value: "https://example.test/v1" },
41
  },
42
+ extraArgs: [
43
+ "-c",
44
+ "model_provider=\"custom\"",
45
+ "-c",
46
+ "model_providers.custom.name=\"custom\"",
47
+ "-c",
48
+ "model_providers.custom.wire_api=\"responses\"",
49
+ "-c",
50
+ "model_providers.custom.requires_openai_auth=true",
51
+ "-c",
52
+ "model_providers.custom.base_url=\"https://example.test/v1\"",
53
+ "-c",
54
+ "openai_base_url=\"https://example.test/v1\"",
55
+ ],
56
  model: "gpt-5.4",
57
  paperclipGlobalOpenAiProviderBinding: {
58
  providerId: "provider-1",
 
64
  },
65
  });
66
  });
67
+
68
+ it("replaces previously managed codex provider args instead of duplicating them", () => {
69
+ const patch = buildOpenAiAgentPatch({
70
+ adapterType: "codex_local",
71
+ currentAdapterConfig: {
72
+ extraArgs: [
73
+ "--search",
74
+ "-c",
75
+ "model_provider=\"custom\"",
76
+ "-c",
77
+ "model_providers.custom.base_url=\"https://old.example/v1\"",
78
+ "-c",
79
+ "openai_base_url=\"https://old.example/v1\"",
80
+ ],
81
+ },
82
+ provider: {
83
+ id: "provider-2",
84
+ name: "New Proxy",
85
+ baseUrl: "https://new.example/v1",
86
+ },
87
+ apiKey: "sk-new",
88
+ model: "gpt-5.4",
89
+ syncedAt: "2026-05-01T00:00:00.000Z",
90
+ });
91
+
92
+ expect(patch).toEqual({
93
+ adapterConfig: {
94
+ env: {
95
+ CODEX_API_KEY: { type: "plain", value: "sk-new" },
96
+ OPENAI_API_KEY: { type: "plain", value: "sk-new" },
97
+ OPENAI_BASE_URL: { type: "plain", value: "https://new.example/v1" },
98
+ OPENAI_API_BASE: { type: "plain", value: "https://new.example/v1" },
99
+ OPENAI_API_BASE_URL: { type: "plain", value: "https://new.example/v1" },
100
+ },
101
+ extraArgs: [
102
+ "--search",
103
+ "-c",
104
+ "model_provider=\"custom\"",
105
+ "-c",
106
+ "model_providers.custom.name=\"custom\"",
107
+ "-c",
108
+ "model_providers.custom.wire_api=\"responses\"",
109
+ "-c",
110
+ "model_providers.custom.requires_openai_auth=true",
111
+ "-c",
112
+ "model_providers.custom.base_url=\"https://new.example/v1\"",
113
+ "-c",
114
+ "openai_base_url=\"https://new.example/v1\"",
115
+ ],
116
+ model: "gpt-5.4",
117
+ paperclipGlobalOpenAiProviderBinding: {
118
+ providerId: "provider-2",
119
+ providerName: "New Proxy",
120
+ providerBaseUrl: "https://new.example/v1",
121
+ managedByPlugin: true,
122
+ syncedAt: "2026-05-01T00:00:00.000Z",
123
+ },
124
+ },
125
+ });
126
+ });
127
  });