fix(backend): deterministic /models fallback test + merge duplicate import

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-28 16:12:18 +02:00
co-authored by Claude Opus 4.8
parent bfbb017413
commit 098915515f
2 changed files with 4 additions and 6 deletions
+1 -2
View File
@@ -8,10 +8,9 @@ import { authPreHandler } from "./auth/auth.js";
import { sessionRoutes } from "./routes/sessions.js";
import { sqlRoutes } from "./routes/sql.js";
import { metaRoutes, type ListModelsFn } from "./routes/meta.js";
import { settingsRoutes } from "./routes/settings.js";
import { settingsRoutes, effectiveSettings } from "./routes/settings.js";
import { createPiModelLister } from "./pi/list-models.js";
import { loadSettings, type Settings } from "./settings/settings-store.js";
import { effectiveSettings } from "./routes/settings.js";
export interface BuildAppDeps {
thtRunner?: ThtRunner;
+3 -4
View File
@@ -148,15 +148,14 @@ test("GET /models returns {models:[]} when listModels throws (graceful fallback)
expect(res.json()).toEqual({ models: [] });
});
test("GET /models with no listModels injected uses real lister (returns array)", async () => {
// No listModels dep → createPiModelLister (real); returns PiModel[] (possibly empty if Pi not running)
test("GET /models with empty listModels stub returns empty array", async () => {
const app = buildApp(loadConfig({ THT_HARNESS_DIR: "../harness" }), {
thtRunner: {} as any,
// listModels intentionally omitted
listModels: async () => [],
});
const res = await app.inject({ method: "GET", url: "/models" });
expect(res.statusCode).toBe(200);
expect(Array.isArray(res.json().models)).toBe(true);
expect(res.json()).toEqual({ models: [] });
});