import { beforeAll, describe, expect, it } from "vitest" ;
import { asConfig, setupSecretsRuntimeSnapshotTestHooks } from "./runtime.test-support.ts" ;
let activateSecretsRuntimeSnapshot: typeof import ("./runtime.js" ).activateSecretsRuntimeSnapshot;
let getActiveRuntimeWebToolsMetadata: typeof import ("./runtime.js" ).getActiveRuntimeWebToolsMetadata;
const { prepareSecretsRuntimeSnapshot } = setupSecretsRuntimeSnapshotTestHooks();
describe("runtime web tools state" , () => {
beforeAll(async () => {
({ activateSecretsRuntimeSnapshot, getActiveRuntimeWebToolsMetadata } =
await import ("./runtime.js" ));
});
it("exposes active runtime web tool metadata as a defensive clone" , async () => {
const snapshot = await prepareSecretsRuntimeSnapshot({
config: asConfig({
tools: {
web: {
search: {
provider: "gemini" ,
},
},
},
plugins: {
entries: {
google: {
config: {
webSearch: {
apiKey: {
source: "env" ,
provider: "default" ,
id: "WEB_SEARCH_GEMINI_API_KEY" ,
},
},
},
},
},
},
}),
env: {
WEB_SEARCH_GEMINI_API_KEY: "web-search-gemini-ref" ,
},
agentDirs: ["/tmp/openclaw-agent-main" ],
loadAuthStore: () => ({ version: 1 , profiles: {} }),
});
activateSecretsRuntimeSnapshot(snapshot);
const first = getActiveRuntimeWebToolsMetadata();
expect(first?.search.providerConfigured).toBe("gemini" );
expect(first?.search.selectedProvider).toBe("gemini" );
expect(first?.search.selectedProviderKeySource).toBe("secretRef" );
if (!first) {
throw new Error("missing runtime web tools metadata" );
}
first.search.providerConfigured = "brave" ;
first.search.selectedProvider = "brave" ;
const second = getActiveRuntimeWebToolsMetadata();
expect(second?.search.providerConfigured).toBe("gemini" );
expect(second?.search.selectedProvider).toBe("gemini" );
});
});
Messung V0.5 in Prozent C=92 H=94 G=92
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland