refactor(api): allow router handler injection in tests

This commit is contained in:
2026-04-21 13:10:00 +00:00
parent 0921dfbe5e
commit c95961d596
2 changed files with 48 additions and 5 deletions
+15 -5
View File
@@ -22,6 +22,14 @@ interface IParsedRequestBody {
body?: unknown;
}
interface IApiRouterOptions {
chatHandler?: ChatHandler;
modelsHandler?: ModelsHandler;
embeddingsHandler?: EmbeddingsHandler;
authMiddleware?: AuthMiddleware;
sanityMiddleware?: SanityMiddleware;
}
/**
* API Router - routes requests to handlers
*/
@@ -42,6 +50,7 @@ export class ApiRouter {
modelLoader: ModelLoader,
clusterCoordinator: ClusterCoordinator,
apiKeys: string[],
options: IApiRouterOptions = {},
) {
this.containerManager = containerManager;
this.modelRegistry = modelRegistry;
@@ -49,22 +58,23 @@ export class ApiRouter {
this.clusterCoordinator = clusterCoordinator;
// Initialize handlers
this.chatHandler = new ChatHandler(
this.chatHandler = options.chatHandler || new ChatHandler(
containerManager,
modelRegistry,
modelLoader,
clusterCoordinator,
);
this.modelsHandler = new ModelsHandler(containerManager, modelRegistry, clusterCoordinator);
this.embeddingsHandler = new EmbeddingsHandler(
this.modelsHandler =
options.modelsHandler || new ModelsHandler(containerManager, modelRegistry, clusterCoordinator);
this.embeddingsHandler = options.embeddingsHandler || new EmbeddingsHandler(
containerManager,
modelRegistry,
clusterCoordinator,
);
// Initialize middleware
this.authMiddleware = new AuthMiddleware(apiKeys);
this.sanityMiddleware = new SanityMiddleware(modelRegistry);
this.authMiddleware = options.authMiddleware || new AuthMiddleware(apiKeys);
this.sanityMiddleware = options.sanityMiddleware || new SanityMiddleware(modelRegistry);
}
/**