refactor: promote plugin test helpers to sdk

This commit is contained in:
Peter Steinberger
2026-04-28 00:53:58 +01:00
parent 49d069cd94
commit 8057561cee
153 changed files with 496 additions and 291 deletions

View File

@@ -13,7 +13,7 @@ const genericCoreFixtureFiles = [
"src/commands/auth-choice.apply.plugin-provider.test.ts",
"src/plugins/contracts/memory-embedding-provider.contract.test.ts",
"src/plugins/discovery.test.ts",
"test/helpers/plugins/tts-contract-suites.ts",
"src/plugins/contracts/tts-contract-suites.ts",
] as const;
const forbiddenGenericFixtureTerms = [
/\bOllama\b|\bollama\b/u,

View File

@@ -1,5 +1,5 @@
import { uniqueSortedStrings } from "openclaw/plugin-sdk/plugin-test-contracts";
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
import { uniqueSortedStrings } from "../../../test/helpers/plugins/contracts-testkit.js";
import { withBundledPluginAllowlistCompat } from "../bundled-compat.js";
import { resolveManifestContractPluginIds } from "../plugin-registry.js";
import { __testing as providerTesting } from "../providers.js";

View File

@@ -1,8 +1,8 @@
import { describe, expect, it } from "vitest";
import {
createPluginRegistryFixture,
registerVirtualTestPlugin,
} from "../../../test/helpers/plugins/contracts-testkit.js";
} from "openclaw/plugin-sdk/plugin-test-contracts";
import { describe, expect, it } from "vitest";
import { getRegisteredMemoryEmbeddingProvider } from "../memory-embedding-providers.js";
describe("memory embedding provider registration", () => {

View File

@@ -1,4 +1,4 @@
import { describePackageManifestContract } from "../../../test/helpers/plugins/package-manifest-contract.js";
import { describePackageManifestContract } from "openclaw/plugin-sdk/plugin-test-contracts";
type PackageManifestContractParams = Parameters<typeof describePackageManifestContract>[0];

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.anthropic);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.brave);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.comfy);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.deepgram);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.duckduckgo);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.elevenlabs);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.exa);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.fal);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.firecrawl);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.google);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.groq);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.microsoft);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.minimax);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.mistral);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.moonshot);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.openai);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.openrouter);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.perplexity);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.senseaudio);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.tavily);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases["tts-local-cli"]);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.xai);

View File

@@ -1,4 +1,4 @@
import { pluginRegistrationContractCases } from "../../../test/helpers/plugins/plugin-registration-contract-cases.js";
import { describePluginRegistrationContract } from "../../../test/helpers/plugins/plugin-registration-contract.js";
import { pluginRegistrationContractCases } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-test-contracts";
describePluginRegistrationContract(pluginRegistrationContractCases.zai);

View File

@@ -1,5 +1,5 @@
import { describeProviderContracts } from "../../../test/helpers/plugins/provider-contract.js";
import { describeWebSearchProviderContracts } from "../../../test/helpers/plugins/web-search-provider-contract.js";
import { describeProviderContracts } from "openclaw/plugin-sdk/provider-test-contracts";
import { describeWebSearchProviderContracts } from "openclaw/plugin-sdk/provider-test-contracts";
for (const providerId of [
"anthropic",

View File

@@ -1,5 +1,5 @@
import { uniqueSortedStrings } from "openclaw/plugin-sdk/plugin-test-contracts";
import { describe, expect, it } from "vitest";
import { uniqueSortedStrings } from "../../../test/helpers/plugins/contracts-testkit.js";
import { loadPluginManifestRegistry } from "../manifest-registry.js";
import { resolveManifestContractPluginIds } from "../plugin-registry.js";
import {

View File

@@ -1,5 +1,5 @@
import { assertNoImportTimeSideEffects } from "openclaw/plugin-sdk/plugin-test-contracts";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { assertNoImportTimeSideEffects } from "../../../test/helpers/plugins/contracts-testkit.js";
const listChannelPlugins = vi.hoisted(() =>
vi.fn(() => [

View File

@@ -1,8 +1,8 @@
import { describe, expect, it } from "vitest";
import {
createPluginRegistryFixture,
registerVirtualTestPlugin,
} from "../../../test/helpers/plugins/contracts-testkit.js";
} from "openclaw/plugin-sdk/plugin-test-contracts";
import { describe, expect, it } from "vitest";
import { buildPluginShapeSummary } from "../inspect-shape.js";
describe("plugin shape compatibility matrix", () => {

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@ import {
describeTtsConfigContract,
describeTtsProviderRuntimeContract,
describeTtsSummarizationContract,
} from "../../../test/helpers/plugins/tts-contract-suites.js";
} from "./tts-contract-suites.js";
describeTtsAutoApplyContract();
describeTtsConfigContract();

View File

@@ -1,4 +1,4 @@
import { describeWebFetchProviderContracts } from "../../../test/helpers/plugins/web-fetch-provider-contract.js";
import { describeWebFetchProviderContracts } from "openclaw/plugin-sdk/provider-test-contracts";
import { pluginRegistrationContractRegistry } from "./registry.js";
const webFetchProviderContractTests = pluginRegistrationContractRegistry.filter(

View File

@@ -1,3 +1,3 @@
import { describeProviderWizardChoiceResolutionContract } from "../../../test/helpers/plugins/provider-wizard-contract-suites.js";
import { describeProviderWizardChoiceResolutionContract } from "openclaw/plugin-sdk/provider-test-contracts";
describeProviderWizardChoiceResolutionContract();

View File

@@ -1,3 +1,3 @@
import { describeProviderWizardModelPickerContract } from "../../../test/helpers/plugins/provider-wizard-contract-suites.js";
import { describeProviderWizardModelPickerContract } from "openclaw/plugin-sdk/provider-test-contracts";
describeProviderWizardModelPickerContract();

View File

@@ -1,3 +1,3 @@
import { describeProviderWizardSetupOptionsContract } from "../../../test/helpers/plugins/provider-wizard-contract-suites.js";
import { describeProviderWizardSetupOptionsContract } from "openclaw/plugin-sdk/provider-test-contracts";
describeProviderWizardSetupOptionsContract();

View File

@@ -1,9 +1,9 @@
import { afterEach, describe, expect, it } from "vitest";
import {
createPluginRegistryFixture,
registerTestPlugin,
registerVirtualTestPlugin,
} from "../../test/helpers/plugins/contracts-testkit.js";
} from "openclaw/plugin-sdk/plugin-test-contracts";
import { afterEach, describe, expect, it } from "vitest";
import { clearMemoryEmbeddingProviders } from "./memory-embedding-providers.js";
import {
_resetMemoryPluginState,