fix(backend): deterministic /models fallback test + merge duplicate import
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+1
-2
@@ -8,10 +8,9 @@ import { authPreHandler } from "./auth/auth.js";
|
|||||||
import { sessionRoutes } from "./routes/sessions.js";
|
import { sessionRoutes } from "./routes/sessions.js";
|
||||||
import { sqlRoutes } from "./routes/sql.js";
|
import { sqlRoutes } from "./routes/sql.js";
|
||||||
import { metaRoutes, type ListModelsFn } from "./routes/meta.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 { createPiModelLister } from "./pi/list-models.js";
|
||||||
import { loadSettings, type Settings } from "./settings/settings-store.js";
|
import { loadSettings, type Settings } from "./settings/settings-store.js";
|
||||||
import { effectiveSettings } from "./routes/settings.js";
|
|
||||||
|
|
||||||
export interface BuildAppDeps {
|
export interface BuildAppDeps {
|
||||||
thtRunner?: ThtRunner;
|
thtRunner?: ThtRunner;
|
||||||
|
|||||||
@@ -148,15 +148,14 @@ test("GET /models returns {models:[]} when listModels throws (graceful fallback)
|
|||||||
expect(res.json()).toEqual({ models: [] });
|
expect(res.json()).toEqual({ models: [] });
|
||||||
});
|
});
|
||||||
|
|
||||||
test("GET /models with no listModels injected uses real lister (returns array)", async () => {
|
test("GET /models with empty listModels stub returns empty array", async () => {
|
||||||
// No listModels dep → createPiModelLister (real); returns PiModel[] (possibly empty if Pi not running)
|
|
||||||
const app = buildApp(loadConfig({ THT_HARNESS_DIR: "../harness" }), {
|
const app = buildApp(loadConfig({ THT_HARNESS_DIR: "../harness" }), {
|
||||||
thtRunner: {} as any,
|
thtRunner: {} as any,
|
||||||
// listModels intentionally omitted
|
listModels: async () => [],
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await app.inject({ method: "GET", url: "/models" });
|
const res = await app.inject({ method: "GET", url: "/models" });
|
||||||
|
|
||||||
expect(res.statusCode).toBe(200);
|
expect(res.statusCode).toBe(200);
|
||||||
expect(Array.isArray(res.json().models)).toBe(true);
|
expect(res.json()).toEqual({ models: [] });
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user