From 098915515f1538d6c97b139733b5f5f0e7fcfd2d Mon Sep 17 00:00:00 2001 From: mptyl Date: Sun, 28 Jun 2026 16:12:18 +0200 Subject: [PATCH] fix(backend): deterministic /models fallback test + merge duplicate import Co-Authored-By: Claude Opus 4.8 --- backend/src/app.ts | 3 +-- backend/test/routes-sql-meta.test.ts | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/backend/src/app.ts b/backend/src/app.ts index a12de7b9..94fafc48 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -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; diff --git a/backend/test/routes-sql-meta.test.ts b/backend/test/routes-sql-meta.test.ts index e4b2252e..0ce8a48a 100644 --- a/backend/test/routes-sql-meta.test.ts +++ b/backend/test/routes-sql-meta.test.ts @@ -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: [] }); });