Referentie voor testhulpprogramma’s, patronen en lint-handhaving voor OpenClaw plugins.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Testhulpprogramma’s
Plugin API-mockimport:openclaw/plugin-sdk/plugin-test-api
Import voor agent-runtimecontract: openclaw/plugin-sdk/agent-runtime-test-contracts
Import voor kanaalcontract: openclaw/plugin-sdk/channel-contract-testing
Import voor kanaaltesthelper: openclaw/plugin-sdk/channel-test-helpers
Import voor kanaaldoeltest: openclaw/plugin-sdk/channel-target-testing
Import voor Plugin-contract: openclaw/plugin-sdk/plugin-test-contracts
Import voor Plugin-runtimetest: openclaw/plugin-sdk/plugin-test-runtime
Import voor providercontract: openclaw/plugin-sdk/provider-test-contracts
Import voor provider-HTTP-mock: openclaw/plugin-sdk/provider-http-test-mocks
Import voor omgevings-/netwerktest: openclaw/plugin-sdk/test-env
Import voor generieke fixture: openclaw/plugin-sdk/test-fixtures
Import voor ingebouwde Node-mock: openclaw/plugin-sdk/test-node-mocks
Geef voor nieuwe plugintests de voorkeur aan de gerichte subpaden hieronder. De brede
openclaw/plugin-sdk/testing-barrel is alleen voor legacy-compatibiliteit.
Repo-guardrails weigeren nieuwe echte imports uit plugin-sdk/testing en
plugin-sdk/test-utils; die namen blijven alleen bestaan als verouderde compatibiliteitsoppervlakken
voor externe plugins en compatibiliteitsrecordtests.
Beschikbare exports
| Export | Doel |
|---|---|
createTestPluginApi | Bouw een minimale Plugin-API-mock voor directe registratie-unittests. Importeer uit plugin-sdk/plugin-test-api |
AUTH_PROFILE_RUNTIME_CONTRACT | Gedeelde auth-profile-contractfixture voor native agent-runtime-adapters. Importeer uit plugin-sdk/agent-runtime-test-contracts |
DELIVERY_NO_REPLY_RUNTIME_CONTRACT | Gedeelde contractfixture voor afleveringsonderdrukking voor native agent-runtime-adapters. Importeer uit plugin-sdk/agent-runtime-test-contracts |
OUTCOME_FALLBACK_RUNTIME_CONTRACT | Gedeelde contractfixture voor fallback-classificatie voor native agent-runtime-adapters. Importeer uit plugin-sdk/agent-runtime-test-contracts |
createParameterFreeTool | Bouw dynamic-tool-schemafixtures voor native runtime-contracttests. Importeer uit plugin-sdk/agent-runtime-test-contracts |
expectChannelInboundContextContract | Controleer de vorm van de inkomende kanaalcontext. Importeer uit plugin-sdk/channel-contract-testing |
installChannelOutboundPayloadContractSuite | Installeer contractgevallen voor uitgaande kanaalpayloads. Importeer uit plugin-sdk/channel-contract-testing |
createStartAccountContext | Bouw contexten voor de levenscyclus van kanaalaccounts. Importeer uit plugin-sdk/channel-test-helpers |
installChannelActionsContractSuite | Installeer generieke contractgevallen voor kanaalberichtacties. Importeer uit plugin-sdk/channel-test-helpers |
installChannelSetupContractSuite | Installeer generieke contractgevallen voor kanaalconfiguratie. Importeer uit plugin-sdk/channel-test-helpers |
installChannelStatusContractSuite | Installeer generieke contractgevallen voor kanaalstatus. Importeer uit plugin-sdk/channel-test-helpers |
expectDirectoryIds | Controleer kanaaldirectory-id’s uit een directory-list-functie. Importeer uit plugin-sdk/channel-test-helpers |
assertBundledChannelEntries | Controleer of gebundelde kanaalentrypoints het verwachte publieke contract beschikbaar stellen. Importeer uit plugin-sdk/channel-test-helpers |
formatEnvelopeTimestamp | Format deterministische enveloptijdstempels. Importeer uit plugin-sdk/channel-test-helpers |
expectPairingReplyText | Controleer kanaalpairing-antwoordtekst en extraheer de code. Importeer uit plugin-sdk/channel-test-helpers |
describePluginRegistrationContract | Installeer contractcontroles voor Plugin-registratie. Importeer uit plugin-sdk/plugin-test-contracts |
registerSingleProviderPlugin | Registreer één provider-Plugin in loader-smoketests. Importeer uit plugin-sdk/plugin-test-runtime |
registerProviderPlugin | Leg alle providersoorten van één Plugin vast. Importeer uit plugin-sdk/plugin-test-runtime |
registerProviderPlugins | Leg providerregistraties over meerdere Plugins vast. Importeer uit plugin-sdk/plugin-test-runtime |
requireRegisteredProvider | Controleer of een providerverzameling een id bevat. Importeer uit plugin-sdk/plugin-test-runtime |
createRuntimeEnv | Bouw een gemockte CLI/Plugin-runtimeomgeving. Importeer uit plugin-sdk/plugin-test-runtime |
createPluginSetupWizardStatus | Bouw helpers voor configuratiestatus voor kanaal-Plugins. Importeer uit plugin-sdk/plugin-test-runtime |
describeOpenAIProviderRuntimeContract | Installeer runtime-contractcontroles voor providerfamilies. Importeer uit plugin-sdk/provider-test-contracts |
expectPassthroughReplayPolicy | Controleer of provider-replaybeleid provider-eigen tools en metadata doorlaat. Importeer uit plugin-sdk/provider-test-contracts |
runRealtimeSttLiveTest | Voer een live realtime STT-providertest uit met gedeelde audiofixtures. Importeer uit plugin-sdk/provider-test-contracts |
normalizeTranscriptForMatch | Normaliseer live transcriptuitvoer vóór fuzzy assertions. Importeer uit plugin-sdk/provider-test-contracts |
expectExplicitVideoGenerationCapabilities | Controleer of videoproviders expliciete mogelijkheden voor generatiemodi declareren. Importeer uit plugin-sdk/provider-test-contracts |
expectExplicitMusicGenerationCapabilities | Controleer of muziekproviders expliciete mogelijkheden voor genereren/bewerken declareren. Importeer uit plugin-sdk/provider-test-contracts |
mockSuccessfulDashscopeVideoTask | Installeer een geslaagde DashScope-compatibele videotaakrespons. Importeer uit plugin-sdk/provider-test-contracts |
getProviderHttpMocks | Krijg toegang tot opt-in provider-HTTP/auth-Vitest-mocks. Importeer uit plugin-sdk/provider-http-test-mocks |
installProviderHttpMockCleanup | Reset provider-HTTP/auth-mocks na elke test. Importeer uit plugin-sdk/provider-http-test-mocks |
installCommonResolveTargetErrorCases | Gedeelde testgevallen voor foutafhandeling bij doelresolutie. Importeer uit plugin-sdk/channel-target-testing |
shouldAckReaction | Controleer of een kanaal een ack-reactie moet toevoegen. Importeer uit plugin-sdk/channel-feedback |
removeAckReactionAfterReply | Verwijder ack-reactie na aflevering van het antwoord. Importeer uit plugin-sdk/channel-feedback |
createTestRegistry | Bouw een kanaal-Plugin-registryfixture. Importeer uit plugin-sdk/plugin-test-runtime of plugin-sdk/channel-test-helpers |
createEmptyPluginRegistry | Bouw een lege Plugin-registryfixture. Importeer uit plugin-sdk/plugin-test-runtime of plugin-sdk/channel-test-helpers |
setActivePluginRegistry | Installeer een registryfixture voor Plugin-runtime-tests. Importeer uit plugin-sdk/plugin-test-runtime of plugin-sdk/channel-test-helpers |
createRequestCaptureJsonFetch | Leg JSON-fetch-aanvragen vast in mediahelpertests. Importeer uit plugin-sdk/test-env |
withServer | Voer tests uit tegen een wegwerpbare lokale HTTP-server. Importeer uit plugin-sdk/test-env |
createMockIncomingRequest | Bouw een minimaal inkomend HTTP-aanvraagobject. Importeer uit plugin-sdk/test-env |
withFetchPreconnect | Voer fetch-tests uit met geïnstalleerde preconnect-hooks. Importeer uit plugin-sdk/test-env |
withEnv / withEnvAsync | Patch omgevingsvariabelen tijdelijk. Importeer uit plugin-sdk/test-env |
createTempHomeEnv / withTempHome / withTempDir | Maak geïsoleerde bestandssysteemtestfixtures. Importeer uit plugin-sdk/test-env |
createMockServerResponse | Maak een minimale HTTP-serverresponsmock. Importeer uit plugin-sdk/test-env |
createCliRuntimeCapture | Leg CLI-runtime-uitvoer vast in tests. Importeer uit plugin-sdk/test-fixtures |
importFreshModule | Importeer een ESM-module met een verse querytoken om de modulecache te omzeilen. Importeer uit plugin-sdk/test-fixtures |
bundledPluginRoot / bundledPluginFile | Los paden naar gebundelde Plugin-bron- of dist-fixtures op. Importeer uit plugin-sdk/test-fixtures |
mockNodeBuiltinModule | Installeer smalle Node-builtin-Vitest-mocks. Importeer uit plugin-sdk/test-node-mocks |
createSandboxTestContext | Bouw sandbox-testcontexten. Importeer uit plugin-sdk/test-fixtures |
writeSkill | Schrijf skill-fixtures. Importeer uit plugin-sdk/test-fixtures |
makeAgentAssistantMessage | Bouw berichtfixtures voor agenttranscripten. Importeer uit plugin-sdk/test-fixtures |
peekSystemEvents / resetSystemEventsForTest | Inspecteer en reset systeemeventfixtures. Importeer uit plugin-sdk/test-fixtures |
sanitizeTerminalText | Sanitize terminaluitvoer voor assertions. Importeer uit plugin-sdk/test-fixtures |
countLines / hasBalancedFences | Controleer de vorm van chunking-uitvoer. Importeer uit plugin-sdk/test-fixtures |
runProviderCatalog | Voer een providercatalogus-hook uit met testafhankelijkheden |
resolveProviderWizardOptions | Los keuzes van de providerconfiguratiewizard op in contracttests |
resolveProviderModelPickerEntries | Los provider-model-picker-items op in contracttests |
buildProviderPluginMethodChoice | Bouw providerwizard-keuze-id’s voor assertions |
setProviderWizardProvidersResolverForTest | Injecteer providerwizard-providers voor geïsoleerde tests |
createProviderUsageFetch | Bouw fixtures voor het ophalen van providergebruik |
useFrozenTime / useRealTime | Bevries en herstel timers voor tijdgevoelige tests. Importeer vanuit plugin-sdk/test-env |
createTestWizardPrompter | Bouw een gemockte prompter voor de installatiewizard |
createRuntimeTaskFlow | Maak geisoleerde runtime-taakstroomstatus |
typedCases | Behoud letterlijke typen voor tabelgestuurde tests. Importeer vanuit plugin-sdk/test-fixtures |
src/plugins/contracts.
Houd nieuwe extension-tests op een gedocumenteerd, gericht SDK-subpad zoals
plugin-sdk/plugin-test-api, plugin-sdk/channel-contract-testing,
plugin-sdk/agent-runtime-test-contracts, plugin-sdk/channel-test-helpers,
plugin-sdk/plugin-test-contracts, plugin-sdk/plugin-test-runtime,
plugin-sdk/provider-test-contracts, plugin-sdk/provider-http-test-mocks,
plugin-sdk/test-env of plugin-sdk/test-fixtures in plaats van rechtstreeks de
brede compatibiliteitsbarrel plugin-sdk/testing, repo-bestanden src/** of repo-
test/helpers/*-bridges te importeren.
Typen
Gerichte testsubpaden exporteren ook typen opnieuw die nuttig zijn in testbestanden:Testdoelresolutie
GebruikinstallCommonResolveTargetErrorCases om standaard foutgevallen toe te voegen voor
kanaaldoelresolutie:
Testpatronen
Registratiecontracten testen
Unittests die een handgeschrevenapi-mock doorgeven aan register(api) oefenen
de acceptatiegates van de OpenClaw-loader niet uit. Voeg ten minste één loader-gedekte smoke-test toe
voor elk registratieoppervlak waarvan je plugin afhankelijk is, vooral hooks en
exclusieve capabilities zoals geheugen.
De echte loader laat plugin-registratie mislukken wanneer vereiste metadata ontbreken of een
plugin een capability-API aanroept waarvan deze geen eigenaar is. Bijvoorbeeld:
api.registerHook(...) vereist een hooknaam, en
api.registerMemoryCapability(...) vereist dat het plugin-manifest of de geëxporteerde
entry kind: "memory" declareert.
Runtime-configuratietoegang testen
Geef de voorkeur aan de gedeelde plugin-runtime-mock uitopenclaw/plugin-sdk/channel-test-helpers
bij het testen van gebundelde kanaalplugins. De verouderde mocks runtime.config.loadConfig() en
runtime.config.writeConfigFile(...) gooien standaard een fout, zodat tests nieuw
gebruik van compatibiliteits-API’s detecteren. Overschrijf die mocks alleen wanneer de test
expliciet legacy-compatibiliteitsgedrag behandelt.
Een kanaalplugin unittesten
Een providerplugin unittesten
De plugin-runtime mocken
Voor code diecreatePluginRuntimeStore gebruikt, mock je de runtime in tests:
Testen met stubs per instantie
Geef de voorkeur aan stubs per instantie boven prototype-mutatie:Contracttests (plugins in repo)
Gebundelde plugins hebben contracttests die registratie-eigenaarschap verifiëren:- Welke plugins welke providers registreren
- Welke plugins welke spraakproviders registreren
- Correctheid van registratiestructuur
- Naleving van runtime-contract
Scoped tests uitvoeren
Voor een specifieke plugin:Lint-afdwinging (plugins in repo)
Drie regels worden afgedwongen doorpnpm check voor plugins in repo:
- Geen monolithische rootimports — de rootbarrel
openclaw/plugin-sdkwordt geweigerd - Geen directe
src/-imports — plugins kunnen../../src/niet rechtstreeks importeren - Geen zelfimports — plugins kunnen hun eigen
plugin-sdk/<name>-subpad niet importeren
Testconfiguratie
OpenClaw gebruikt Vitest met V8-coveragedrempels. Voor plugintests:Gerelateerd
- SDK-overzicht — importconventies
- SDK-kanaalplugins — interface voor kanaalplugins
- SDK-providerplugins — hooks voor providerplugins
- Plugins bouwen — handleiding om te beginnen