mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-12 09:41:11 +00:00
test: trim provider contract slow paths
This commit is contained in:
@@ -41,10 +41,6 @@ describe("google video generation provider", () => {
|
||||
mode: "api-key",
|
||||
});
|
||||
generateVideosMock.mockResolvedValue({
|
||||
done: false,
|
||||
name: "operations/123",
|
||||
});
|
||||
getVideosOperationMock.mockResolvedValue({
|
||||
done: true,
|
||||
name: "operations/123",
|
||||
response: {
|
||||
|
||||
@@ -113,6 +113,14 @@ export function hasAvailableCodexAuth(params: {
|
||||
config?: OpenClawConfig;
|
||||
agentDir?: string;
|
||||
}): boolean {
|
||||
if (
|
||||
Object.values(params.config?.auth?.profiles ?? {}).some(
|
||||
(profile) => isRecord(profile) && profile.provider === "openai-codex",
|
||||
)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (params.agentDir) {
|
||||
try {
|
||||
if (
|
||||
@@ -124,10 +132,7 @@ export function hasAvailableCodexAuth(params: {
|
||||
// Fall back to config-based detection below.
|
||||
}
|
||||
}
|
||||
|
||||
return Object.values(params.config?.auth?.profiles ?? {}).some(
|
||||
(profile) => isRecord(profile) && profile.provider === "openai-codex",
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
export function resolveCodexNativeSearchActivation(params: {
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
imageGenerationProviderContractRegistry,
|
||||
mediaUnderstandingProviderContractRegistry,
|
||||
musicGenerationProviderContractRegistry,
|
||||
pluginRegistrationContractRegistry,
|
||||
speechProviderContractRegistry,
|
||||
videoGenerationProviderContractRegistry,
|
||||
} from "../../../src/plugins/contracts/registry.js";
|
||||
import { pluginRegistrationContractRegistry } from "../../../src/plugins/contracts/registry.js";
|
||||
import { loadPluginManifestRegistry } from "../../../src/plugins/manifest-registry.js";
|
||||
|
||||
type PluginRegistrationContractParams = {
|
||||
@@ -47,79 +40,6 @@ function findRegistration(pluginId: string) {
|
||||
return entry;
|
||||
}
|
||||
|
||||
function findSpeechProviderIds(pluginId: string) {
|
||||
return speechProviderContractRegistry
|
||||
.filter((entry) => entry.pluginId === pluginId)
|
||||
.map((entry) => entry.provider.id)
|
||||
.toSorted((left, right) => left.localeCompare(right));
|
||||
}
|
||||
|
||||
function findSpeechProvider(pluginId: string) {
|
||||
const entry = speechProviderContractRegistry.find((candidate) => candidate.pluginId === pluginId);
|
||||
if (!entry) {
|
||||
throw new Error(`speech provider contract missing for ${pluginId}`);
|
||||
}
|
||||
return entry.provider;
|
||||
}
|
||||
|
||||
function findMediaUnderstandingProviderIds(pluginId: string) {
|
||||
return mediaUnderstandingProviderContractRegistry
|
||||
.filter((entry) => entry.pluginId === pluginId)
|
||||
.map((entry) => entry.provider.id)
|
||||
.toSorted((left, right) => left.localeCompare(right));
|
||||
}
|
||||
|
||||
function findMediaUnderstandingProvider(pluginId: string) {
|
||||
const entry = mediaUnderstandingProviderContractRegistry.find(
|
||||
(candidate) => candidate.pluginId === pluginId,
|
||||
);
|
||||
if (!entry) {
|
||||
throw new Error(`media-understanding provider contract missing for ${pluginId}`);
|
||||
}
|
||||
return entry.provider;
|
||||
}
|
||||
|
||||
function findImageGenerationProviderIds(pluginId: string) {
|
||||
return imageGenerationProviderContractRegistry
|
||||
.filter((entry) => entry.pluginId === pluginId)
|
||||
.map((entry) => entry.provider.id)
|
||||
.toSorted((left, right) => left.localeCompare(right));
|
||||
}
|
||||
|
||||
function findImageGenerationProvider(pluginId: string) {
|
||||
const entry = imageGenerationProviderContractRegistry.find(
|
||||
(candidate) => candidate.pluginId === pluginId,
|
||||
);
|
||||
if (!entry) {
|
||||
throw new Error(`image-generation provider contract missing for ${pluginId}`);
|
||||
}
|
||||
return entry.provider;
|
||||
}
|
||||
|
||||
function findVideoGenerationProviderIds(pluginId: string) {
|
||||
return videoGenerationProviderContractRegistry
|
||||
.filter((entry) => entry.pluginId === pluginId)
|
||||
.map((entry) => entry.provider.id)
|
||||
.toSorted((left, right) => left.localeCompare(right));
|
||||
}
|
||||
|
||||
function findVideoGenerationProvider(pluginId: string) {
|
||||
const entry = videoGenerationProviderContractRegistry.find(
|
||||
(candidate) => candidate.pluginId === pluginId,
|
||||
);
|
||||
if (!entry) {
|
||||
throw new Error(`video-generation provider contract missing for ${pluginId}`);
|
||||
}
|
||||
return entry.provider;
|
||||
}
|
||||
|
||||
function findMusicGenerationProviderIds(pluginId: string) {
|
||||
return musicGenerationProviderContractRegistry
|
||||
.filter((entry) => entry.pluginId === pluginId)
|
||||
.map((entry) => entry.provider.id)
|
||||
.toSorted((left, right) => left.localeCompare(right));
|
||||
}
|
||||
|
||||
export function describePluginRegistrationContract(params: PluginRegistrationContractParams) {
|
||||
describe(`${params.pluginId} plugin registration contract`, () => {
|
||||
if (params.cliBackendIds) {
|
||||
@@ -155,7 +75,6 @@ export function describePluginRegistrationContract(params: PluginRegistrationCon
|
||||
expect(findRegistration(params.pluginId).speechProviderIds).toEqual(
|
||||
params.speechProviderIds,
|
||||
);
|
||||
expect(findSpeechProviderIds(params.pluginId)).toEqual(params.speechProviderIds);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -180,9 +99,6 @@ export function describePluginRegistrationContract(params: PluginRegistrationCon
|
||||
expect(findRegistration(params.pluginId).mediaUnderstandingProviderIds).toEqual(
|
||||
params.mediaUnderstandingProviderIds,
|
||||
);
|
||||
expect(findMediaUnderstandingProviderIds(params.pluginId)).toEqual(
|
||||
params.mediaUnderstandingProviderIds,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -191,9 +107,6 @@ export function describePluginRegistrationContract(params: PluginRegistrationCon
|
||||
expect(findRegistration(params.pluginId).imageGenerationProviderIds).toEqual(
|
||||
params.imageGenerationProviderIds,
|
||||
);
|
||||
expect(findImageGenerationProviderIds(params.pluginId)).toEqual(
|
||||
params.imageGenerationProviderIds,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -202,9 +115,6 @@ export function describePluginRegistrationContract(params: PluginRegistrationCon
|
||||
expect(findRegistration(params.pluginId).videoGenerationProviderIds).toEqual(
|
||||
params.videoGenerationProviderIds,
|
||||
);
|
||||
expect(findVideoGenerationProviderIds(params.pluginId)).toEqual(
|
||||
params.videoGenerationProviderIds,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -213,9 +123,6 @@ export function describePluginRegistrationContract(params: PluginRegistrationCon
|
||||
expect(findRegistration(params.pluginId).musicGenerationProviderIds).toEqual(
|
||||
params.musicGenerationProviderIds,
|
||||
);
|
||||
expect(findMusicGenerationProviderIds(params.pluginId)).toEqual(
|
||||
params.musicGenerationProviderIds,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -225,36 +132,6 @@ export function describePluginRegistrationContract(params: PluginRegistrationCon
|
||||
});
|
||||
}
|
||||
|
||||
if (params.requireSpeechVoices) {
|
||||
it("keeps bundled speech voice-list support explicit", () => {
|
||||
expect(findSpeechProvider(params.pluginId).listVoices).toEqual(expect.any(Function));
|
||||
});
|
||||
}
|
||||
|
||||
if (params.requireDescribeImages) {
|
||||
it("keeps bundled multi-image support explicit", () => {
|
||||
expect(findMediaUnderstandingProvider(params.pluginId).describeImages).toEqual(
|
||||
expect.any(Function),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
if (params.requireGenerateImage) {
|
||||
it("keeps bundled image-generation support explicit", () => {
|
||||
expect(findImageGenerationProvider(params.pluginId).generateImage).toEqual(
|
||||
expect.any(Function),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
if (params.requireGenerateVideo) {
|
||||
it("keeps bundled video-generation support explicit", () => {
|
||||
expect(findVideoGenerationProvider(params.pluginId).generateVideo).toEqual(
|
||||
expect.any(Function),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
const manifestAuthChoice = params.manifestAuthChoice;
|
||||
if (manifestAuthChoice) {
|
||||
it("keeps onboarding auth grouping explicit", () => {
|
||||
|
||||
Reference in New Issue
Block a user