mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-28 05:16:23 -06:00
fix(ui): preserve model provider route provenance (#106872)
* fix(ui): preserve model provider route provenance * fix(ci): repair current-main quality gates
This commit is contained in:
committed by
GitHub
parent
ad8107e136
commit
d6d09293c2
@@ -6,8 +6,8 @@ import type { ModelProvidersRouteData } from "./model-providers-page.ts";
|
||||
async function loadModelProvidersRouteData(
|
||||
context: ApplicationContext,
|
||||
): Promise<ModelProvidersRouteData> {
|
||||
const { EMPTY_MODEL_PROVIDERS_DATA, loadModelProvidersData } = await import("./load.ts");
|
||||
const gatewaySnapshot = context.gateway.snapshot;
|
||||
const { EMPTY_MODEL_PROVIDERS_DATA, loadModelProvidersData } = await import("./load.ts");
|
||||
const client = gatewaySnapshot.connected ? gatewaySnapshot.client : null;
|
||||
if (!client) {
|
||||
return { data: EMPTY_MODEL_PROVIDERS_DATA, client: null };
|
||||
|
||||
@@ -4,6 +4,8 @@ import type { GatewayBrowserClient } from "../api/gateway.ts";
|
||||
import type { ApplicationContext, ApplicationGatewaySnapshot } from "../app/context.ts";
|
||||
import type { AgentsRouteData } from "./agents/agents-page.ts";
|
||||
import { page as agentsPage } from "./agents/route.ts";
|
||||
import type { ModelProvidersRouteData } from "./model-providers/model-providers-page.ts";
|
||||
import { page as modelProvidersPage } from "./model-providers/route.ts";
|
||||
import type { NodesRouteData } from "./nodes/nodes-page.ts";
|
||||
import { page as nodesPage } from "./nodes/route.ts";
|
||||
import type { PluginsRouteData } from "./plugins/plugins-page.ts";
|
||||
@@ -135,6 +137,26 @@ describe("route preload gateway provenance", () => {
|
||||
expect(data.gatewaySnapshot).toBe(originalSnapshot);
|
||||
});
|
||||
|
||||
it("keeps model providers provenance from before its lazy module load", async () => {
|
||||
const originalRequest = vi.fn(async () => ({}));
|
||||
const originalClient = { request: originalRequest } as unknown as GatewayBrowserClient;
|
||||
const replacementRequest = vi.fn(async () => ({}));
|
||||
const replacementClient = {
|
||||
request: replacementRequest,
|
||||
} as unknown as GatewayBrowserClient;
|
||||
const mutable = mutableGateway(snapshot(originalClient, true));
|
||||
const request = loadRoute<ModelProvidersRouteData>(modelProvidersPage, {
|
||||
gateway: mutable.gateway,
|
||||
} as unknown as ApplicationContext);
|
||||
|
||||
mutable.replaceSnapshot(snapshot(replacementClient, true));
|
||||
const data = await request;
|
||||
|
||||
expect(data.client).toBe(originalClient);
|
||||
expect(originalRequest).toHaveBeenCalled();
|
||||
expect(replacementRequest).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("keeps skills provenance from before its async preload", async () => {
|
||||
const client = {
|
||||
request: vi.fn(async () => ({ skills: [] })),
|
||||
|
||||
Reference in New Issue
Block a user