Skip to content

Commit d9efbc3

Browse files
test(web): model picker search fixture mirrors the real model manifest
Co-Authored-By: Claude Opus 5.5 <[email protected]>
1 parent 5ec062d commit d9efbc3

1 file changed

Lines changed: 46 additions & 15 deletions

File tree

‎apps/web/src/components/chat/modelPickerSearch.test.ts‎

Lines changed: 46 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ function instanceModels(
151151
}
152152

153153
// Each provider lists its models newest first, as the picker receives them.
154+
// Claude, Codex, and Antigravity mirror apps/server/src/provider/model-manifest.json;
155+
// Grok and OpenCode report their catalogs at runtime.
154156
const catalog: CatalogModel[] = [
155157
...instanceModels("claudeAgent", "Claude", [
156158
"Claude Opus 5.5",
@@ -169,18 +171,27 @@ const catalog: CatalogModel[] = [
169171
]),
170172
...instanceModels("codex", "Codex", [
171173
"GPT-6.1 Sol",
172-
"GPT-5.6-Sol",
173-
"GPT-5.6-Terra",
174+
"GPT-6 Astra",
175+
"GPT-6 Luna",
176+
"GPT-6 Sol",
177+
"GPT-5.6 Sol",
178+
"GPT-5.6 Terra",
179+
"GPT-5.6 Luna",
174180
"GPT-5.5",
175-
"GPT-5.4",
176-
"GPT-5",
177181
]),
178182
...instanceModels("grok", "Grok", ["Grok 4.7", "Grok 4.6", "Grok 4.5"]),
179183
...instanceModels("antigravity", "Antigravity", [
180184
"Gemini 3.8 Flash (High)",
181185
"Gemini 3.8 Flash (Medium)",
182186
"Gemini 3.8 Flash (Low)",
183-
"Gemini 3.1 Pro",
187+
"Gemini 3.7 Flash (High)",
188+
"Gemini 3.7 Flash (Medium)",
189+
"Gemini 3.7 Flash (Low)",
190+
"Gemini 3.6 Flash (High)",
191+
"Gemini 3.6 Flash (Medium)",
192+
"Gemini 3.6 Flash (Low)",
193+
"Gemini 3.1 Pro (High)",
194+
"Gemini 3.1 Pro (Low)",
184195
]),
185196
{
186197
driverKind: "opencode",
@@ -222,10 +233,36 @@ describe("rankModelPickerSearch", () => {
222233
["sonnet", ["Claude Sonnet 5.5", "Claude Sonnet 5", "Claude Sonnet 4.6"]],
223234
["fable", ["Claude Fable 5.1", "Claude Fable 5"]],
224235
["haiku", ["Claude Haiku 5.5", "Claude Haiku 4.5"]],
225-
["gpt", ["GPT-6.1 Sol", "GPT-5.6-Sol", "GPT-5.6-Terra", "GPT-5.5", "GPT-5.4", "GPT-5"]],
226-
["sol", ["GPT-6.1 Sol", "GPT-5.6-Sol"]],
236+
[
237+
"gpt",
238+
[
239+
"GPT-6.1 Sol",
240+
"GPT-6 Astra",
241+
"GPT-6 Luna",
242+
"GPT-6 Sol",
243+
"GPT-5.6 Sol",
244+
"GPT-5.6 Terra",
245+
"GPT-5.6 Luna",
246+
"GPT-5.5",
247+
],
248+
],
249+
["sol", ["GPT-6.1 Sol", "GPT-6 Sol", "GPT-5.6 Sol"]],
250+
["luna", ["GPT-6 Luna", "GPT-5.6 Luna"]],
227251
["grok", ["Grok 4.7", "Grok 4.6", "Grok 4.5"]],
228-
["flash", ["Gemini 3.8 Flash (High)", "Gemini 3.8 Flash (Medium)", "Gemini 3.8 Flash (Low)"]],
252+
[
253+
"flash",
254+
[
255+
"Gemini 3.8 Flash (High)",
256+
"Gemini 3.8 Flash (Medium)",
257+
"Gemini 3.8 Flash (Low)",
258+
"Gemini 3.7 Flash (High)",
259+
"Gemini 3.7 Flash (Medium)",
260+
"Gemini 3.7 Flash (Low)",
261+
"Gemini 3.6 Flash (High)",
262+
"Gemini 3.6 Flash (Medium)",
263+
"Gemini 3.6 Flash (Low)",
264+
],
265+
],
229266
["kimi", ["Kimi K3", "Kimi K2.5", "Kimi K2"]],
230267
])("lists equally good matches for %j newest first", (query, expected) => {
231268
// Loose fuzzy matches from other families may follow; they rank last.
@@ -245,13 +282,7 @@ describe("rankModelPickerSearch", () => {
245282
});
246283

247284
it("still ranks an exact name above newer models that extend it", () => {
248-
expect(search("gpt-5")).toEqual([
249-
"GPT-5",
250-
"GPT-5.6-Sol",
251-
"GPT-5.6-Terra",
252-
"GPT-5.5",
253-
"GPT-5.4",
254-
]);
285+
expect(search("gpt-6 sol").slice(0, 2)).toEqual(["GPT-6 Sol", "GPT-6.1 Sol"]);
255286
expect(search("claude opus 5").slice(0, 2)).toEqual(["Claude Opus 5", "Claude Opus 5.5"]);
256287
expect(search("Grok 4.6")[0]).toBe("Grok 4.6");
257288
});

0 commit comments

Comments
 (0)