refactor: move extension-owned tests to extensions

This commit is contained in:
Peter Steinberger
2026-03-27 21:36:46 +00:00
parent d506eea076
commit 992b30604d
209 changed files with 4828 additions and 3173 deletions

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("amazon-bedrock");

View File

@@ -0,0 +1,9 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "anthropic",
providerIds: ["anthropic"],
mediaUnderstandingProviderIds: ["anthropic"],
cliBackendIds: ["claude-cli"],
requireDescribeImages: true,
});

View File

@@ -0,0 +1,3 @@
import { describeAnthropicProviderRuntimeContract } from "../../test/helpers/extensions/provider-runtime-contract.js";
describeAnthropicProviderRuntimeContract();

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("anthropic");

View File

@@ -0,0 +1,6 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "bluebubbles",
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,6 @@
import { describe } from "vitest";
import { installDmPolicyContractSuite } from "../../../test/helpers/channels/dm-policy-contract.js";
describe("bluebubbles dm policy contract", () => {
installDmPolicyContractSuite("bluebubbles");
});

View File

@@ -0,0 +1,3 @@
import { describeChannelRegistryBackedContracts } from "../../../test/helpers/channels/registry-backed-contract.js";
describeChannelRegistryBackedContracts("bluebubbles");

View File

@@ -0,0 +1,3 @@
import { describeBundledWebSearchFastPathContract } from "../../test/helpers/extensions/bundled-web-search-fast-path-contract.js";
describeBundledWebSearchFastPathContract("brave");

View File

@@ -0,0 +1,6 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "brave",
webSearchProviderIds: ["brave"],
});

View File

@@ -0,0 +1,3 @@
import { describeWebSearchProviderContracts } from "../../test/helpers/extensions/web-search-provider-contract.js";
describeWebSearchProviderContracts("brave");

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("byteplus");

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("chutes");

View File

@@ -0,0 +1,3 @@
import { describeCloudflareAiGatewayProviderDiscoveryContract } from "../../test/helpers/extensions/provider-discovery-contract.js";
describeCloudflareAiGatewayProviderDiscoveryContract();

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("cloudflare-ai-gateway");

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("copilot-proxy");

View File

@@ -0,0 +1,6 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "deepgram",
mediaUnderstandingProviderIds: ["deepgram"],
});

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("deepseek");

View File

@@ -0,0 +1,7 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "discord",
runtimeDeps: ["@buape/carbon", "https-proxy-agent"],
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,6 @@
import { describe } from "vitest";
import { installDiscordGroupPolicyContractSuite } from "../../../test/helpers/channels/group-policy-contract.js";
describe("discord group policy contract", () => {
installDiscordGroupPolicyContractSuite();
});

View File

@@ -0,0 +1,6 @@
import { describe } from "vitest";
import { installDiscordInboundContractSuite } from "../../../test/helpers/channels/inbound-contract.js";
describe("discord inbound contract", () => {
installDiscordInboundContractSuite();
});

View File

@@ -0,0 +1,6 @@
import { describe } from "vitest";
import { installDiscordOutboundPayloadContractSuite } from "../../../test/helpers/channels/outbound-payload-contract.js";
describe("discord outbound payload contract", () => {
installDiscordOutboundPayloadContractSuite();
});

View File

@@ -0,0 +1,3 @@
import { describeDiscordPluginsCoreExtensionContract } from "../../../test/helpers/channels/plugins-core-extension-contract.js";
describeDiscordPluginsCoreExtensionContract();

View File

@@ -0,0 +1,7 @@
import {
describeChannelRegistryBackedContracts,
describeSessionBindingRegistryBackedContract,
} from "../../../test/helpers/channels/registry-backed-contract.js";
describeChannelRegistryBackedContracts("discord");
describeSessionBindingRegistryBackedContract("discord");

View File

@@ -0,0 +1,3 @@
import { describeBundledWebSearchFastPathContract } from "../../test/helpers/extensions/bundled-web-search-fast-path-contract.js";
describeBundledWebSearchFastPathContract("duckduckgo");

View File

@@ -0,0 +1,6 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "duckduckgo",
webSearchProviderIds: ["duckduckgo"],
});

View File

@@ -0,0 +1,3 @@
import { describeWebSearchProviderContracts } from "../../test/helpers/extensions/web-search-provider-contract.js";
describeWebSearchProviderContracts("duckduckgo");

View File

@@ -0,0 +1,7 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "elevenlabs",
speechProviderIds: ["elevenlabs"],
requireSpeechVoices: true,
});

View File

@@ -0,0 +1,3 @@
import { describeBundledWebSearchFastPathContract } from "../../test/helpers/extensions/bundled-web-search-fast-path-contract.js";
describeBundledWebSearchFastPathContract("exa");

View File

@@ -0,0 +1,6 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "exa",
webSearchProviderIds: ["exa"],
});

View File

@@ -0,0 +1,3 @@
import { describeWebSearchProviderContracts } from "../../test/helpers/extensions/web-search-provider-contract.js";
describeWebSearchProviderContracts("exa");

View File

@@ -0,0 +1,7 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "fal",
providerIds: ["fal"],
imageGenerationProviderIds: ["fal"],
});

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("fal");

View File

@@ -0,0 +1,7 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "feishu",
runtimeDeps: ["@larksuiteoapi/node-sdk"],
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,7 @@
import {
describeChannelRegistryBackedContracts,
describeSessionBindingRegistryBackedContract,
} from "../../../test/helpers/channels/registry-backed-contract.js";
describeChannelRegistryBackedContracts("feishu");
describeSessionBindingRegistryBackedContract("feishu");

View File

@@ -0,0 +1,4 @@
import { describeSessionBindingContractCoverage } from "../../../test/helpers/channels/session-binding-contract.js";
import { feishuSessionBindingAdapterChannels } from "../api.js";
describeSessionBindingContractCoverage(feishuSessionBindingAdapterChannels);

View File

@@ -0,0 +1,3 @@
import { describeBundledWebSearchFastPathContract } from "../../test/helpers/extensions/bundled-web-search-fast-path-contract.js";
describeBundledWebSearchFastPathContract("firecrawl");

View File

@@ -0,0 +1,7 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "firecrawl",
webSearchProviderIds: ["firecrawl"],
toolNames: ["firecrawl_search", "firecrawl_scrape"],
});

View File

@@ -0,0 +1,3 @@
import { describeWebSearchProviderContracts } from "../../test/helpers/extensions/web-search-provider-contract.js";
describeWebSearchProviderContracts("firecrawl");

View File

@@ -0,0 +1,3 @@
import { describeGithubCopilotProviderAuthContract } from "../../test/helpers/extensions/provider-auth-contract.js";
describeGithubCopilotProviderAuthContract();

View File

@@ -0,0 +1,3 @@
import { describeGithubCopilotProviderDiscoveryContract } from "../../test/helpers/extensions/provider-discovery-contract.js";
describeGithubCopilotProviderDiscoveryContract();

View File

@@ -0,0 +1,3 @@
import { describeGithubCopilotProviderRuntimeContract } from "../../test/helpers/extensions/provider-runtime-contract.js";
describeGithubCopilotProviderRuntimeContract();

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("github-copilot");

View File

@@ -0,0 +1,3 @@
import { describeBundledWebSearchFastPathContract } from "../../test/helpers/extensions/bundled-web-search-fast-path-contract.js";
describeBundledWebSearchFastPathContract("google");

View File

@@ -0,0 +1,12 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "google",
providerIds: ["google", "google-gemini-cli"],
webSearchProviderIds: ["gemini"],
mediaUnderstandingProviderIds: ["google"],
imageGenerationProviderIds: ["google"],
cliBackendIds: ["google-gemini-cli"],
requireDescribeImages: true,
requireGenerateImage: true,
});

View File

@@ -0,0 +1,3 @@
import { describeGoogleProviderRuntimeContract } from "../../test/helpers/extensions/provider-runtime-contract.js";
describeGoogleProviderRuntimeContract();

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("google");

View File

@@ -0,0 +1,3 @@
import { describeWebSearchProviderContracts } from "../../test/helpers/extensions/web-search-provider-contract.js";
describeWebSearchProviderContracts("google");

View File

@@ -0,0 +1,6 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "googlechat",
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,6 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "groq",
mediaUnderstandingProviderIds: ["groq"],
});

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("huggingface");

View File

@@ -0,0 +1,6 @@
import { describe } from "vitest";
import { installIMessageGroupPolicyContractSuite } from "../../../test/helpers/channels/group-policy-contract.js";
describe("imessage group policy contract", () => {
installIMessageGroupPolicyContractSuite();
});

View File

@@ -0,0 +1,6 @@
import { describe } from "vitest";
import { installDirectTextMediaOutboundPayloadContractSuite } from "../../../test/helpers/channels/outbound-payload-contract.js";
describe("imessage outbound payload contract", () => {
installDirectTextMediaOutboundPayloadContractSuite();
});

View File

@@ -0,0 +1,3 @@
import { describeIMessagePluginsCoreExtensionContract } from "../../../test/helpers/channels/plugins-core-extension-contract.js";
describeIMessagePluginsCoreExtensionContract();

View File

@@ -0,0 +1,3 @@
import { describeChannelRegistryBackedContracts } from "../../../test/helpers/channels/registry-backed-contract.js";
describeChannelRegistryBackedContracts("imessage");

View File

@@ -0,0 +1,6 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "irc",
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,3 @@
import { describeChannelRegistryBackedContracts } from "../../../test/helpers/channels/registry-backed-contract.js";
describeChannelRegistryBackedContracts("irc");

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("kilocode");

View File

@@ -0,0 +1,6 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "line",
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,3 @@
import { describeLinePluginsCoreExtensionContract } from "../../../test/helpers/channels/plugins-core-extension-contract.js";
describeLinePluginsCoreExtensionContract();

View File

@@ -0,0 +1,3 @@
import { describeChannelRegistryBackedContracts } from "../../../test/helpers/channels/registry-backed-contract.js";
describeChannelRegistryBackedContracts("line");

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("litellm");

View File

@@ -0,0 +1,6 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "matrix",
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,3 @@
import { describeSessionBindingRegistryBackedContract } from "../../../test/helpers/channels/registry-backed-contract.js";
describeSessionBindingRegistryBackedContract("matrix");

View File

@@ -0,0 +1,4 @@
import { describeSessionBindingContractCoverage } from "../../../test/helpers/channels/session-binding-contract.js";
import { matrixSessionBindingAdapterChannels } from "../api.js";
describeSessionBindingContractCoverage(matrixSessionBindingAdapterChannels);

View File

@@ -0,0 +1,6 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "mattermost",
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,6 @@
import { describe } from "vitest";
import { installDmPolicyContractSuite } from "../../../test/helpers/channels/dm-policy-contract.js";
describe("mattermost dm policy contract", () => {
installDmPolicyContractSuite("mattermost");
});

View File

@@ -0,0 +1,3 @@
import { describeChannelRegistryBackedContracts } from "../../../test/helpers/channels/registry-backed-contract.js";
describeChannelRegistryBackedContracts("mattermost");

View File

@@ -0,0 +1,7 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "memory-lancedb",
runtimeDeps: ["@lancedb/lancedb"],
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("microsoft-foundry");

View File

@@ -0,0 +1,7 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "microsoft",
speechProviderIds: ["microsoft"],
requireSpeechVoices: true,
});

View File

@@ -0,0 +1,10 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "minimax",
providerIds: ["minimax", "minimax-portal"],
mediaUnderstandingProviderIds: ["minimax", "minimax-portal"],
imageGenerationProviderIds: ["minimax", "minimax-portal"],
requireDescribeImages: true,
requireGenerateImage: true,
});

View File

@@ -0,0 +1,3 @@
import { describeMinimaxProviderDiscoveryContract } from "../../test/helpers/extensions/provider-discovery-contract.js";
describeMinimaxProviderDiscoveryContract();

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("minimax");

View File

@@ -0,0 +1,6 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "mistral",
mediaUnderstandingProviderIds: ["mistral"],
});

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("mistral");

View File

@@ -0,0 +1,3 @@
import { describeModelStudioProviderDiscoveryContract } from "../../test/helpers/extensions/provider-discovery-contract.js";
describeModelStudioProviderDiscoveryContract();

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("modelstudio");

View File

@@ -0,0 +1,3 @@
import { describeBundledWebSearchFastPathContract } from "../../test/helpers/extensions/bundled-web-search-fast-path-contract.js";
describeBundledWebSearchFastPathContract("moonshot");

View File

@@ -0,0 +1,17 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "moonshot",
providerIds: ["moonshot"],
webSearchProviderIds: ["kimi"],
mediaUnderstandingProviderIds: ["moonshot"],
requireDescribeImages: true,
manifestAuthChoice: {
pluginId: "kimi",
choiceId: "kimi-code-api-key",
choiceLabel: "Kimi Code API key (subscription)",
groupId: "moonshot",
groupLabel: "Moonshot AI (Kimi K2.5)",
groupHint: "Kimi K2.5",
},
});

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("moonshot");

View File

@@ -0,0 +1,3 @@
import { describeWebSearchProviderContracts } from "../../test/helpers/extensions/web-search-provider-contract.js";
describeWebSearchProviderContracts("moonshot");

View File

@@ -0,0 +1,7 @@
import { describeChannelCatalogEntryContract } from "../../test/helpers/channels/channel-catalog-contract.js";
describeChannelCatalogEntryContract({
channelId: "msteams",
npmSpec: "@openclaw/msteams",
alias: "teams",
});

View File

@@ -0,0 +1,6 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "msteams",
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,6 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "nextcloud-talk",
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,3 @@
import { describeChannelRegistryBackedContracts } from "../../../test/helpers/channels/registry-backed-contract.js";
describeChannelRegistryBackedContracts("nextcloud-talk");

View File

@@ -0,0 +1,6 @@
import { describePackageManifestContract } from "../../test/helpers/extensions/package-manifest-contract.js";
describePackageManifestContract({
pluginId: "nostr",
minHostVersionBaseline: "2026.3.22",
});

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("nvidia");

View File

@@ -0,0 +1,3 @@
import { describeOllamaProviderDiscoveryContract } from "../../test/helpers/extensions/provider-discovery-contract.js";
describeOllamaProviderDiscoveryContract();

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("ollama");

View File

@@ -0,0 +1,13 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "openai",
providerIds: ["openai", "openai-codex"],
speechProviderIds: ["openai"],
mediaUnderstandingProviderIds: ["openai", "openai-codex"],
imageGenerationProviderIds: ["openai"],
cliBackendIds: ["codex-cli"],
requireSpeechVoices: true,
requireDescribeImages: true,
requireGenerateImage: true,
});

View File

@@ -0,0 +1,3 @@
import { describeOpenAICodexProviderAuthContract } from "../../test/helpers/extensions/provider-auth-contract.js";
describeOpenAICodexProviderAuthContract();

View File

@@ -0,0 +1,3 @@
import { describeOpenAIProviderCatalogContract } from "../../test/helpers/extensions/provider-catalog-contract.js";
describeOpenAIProviderCatalogContract();

View File

@@ -0,0 +1,3 @@
import { describeOpenAIProviderRuntimeContract } from "../../test/helpers/extensions/provider-runtime-contract.js";
describeOpenAIProviderRuntimeContract();

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("openai");

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("opencode-go");

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("opencode");

View File

@@ -0,0 +1,8 @@
import { describePluginRegistrationContract } from "../../test/helpers/extensions/plugin-registration-contract.js";
describePluginRegistrationContract({
pluginId: "openrouter",
providerIds: ["openrouter"],
mediaUnderstandingProviderIds: ["openrouter"],
requireDescribeImages: true,
});

View File

@@ -0,0 +1,3 @@
import { describeOpenRouterProviderRuntimeContract } from "../../test/helpers/extensions/provider-runtime-contract.js";
describeOpenRouterProviderRuntimeContract();

View File

@@ -0,0 +1,3 @@
import { describeProviderContracts } from "../../test/helpers/extensions/provider-contract.js";
describeProviderContracts("openrouter");

View File

@@ -0,0 +1,3 @@
import { describeBundledWebSearchFastPathContract } from "../../test/helpers/extensions/bundled-web-search-fast-path-contract.js";
describeBundledWebSearchFastPathContract("perplexity");

Some files were not shown because too many files have changed in this diff Show More