title: Plugin testing harness contracts scenario: id: plugin-testing-harness-contracts surface: plugins category: plugins.testing-plugins coverage: primary: - plugins.test-fixtures - plugins.local-test-environment - plugins.harness-contracts-tools - plugins.unit-and-integration-scaffolds objective: Verify the repo-local plugin test helpers provide isolated state, typed fixtures, real registry registration, tool execution, and contract diagnostics. successCriteria: - The temporary-home helper creates isolated OpenClaw state and restores the caller environment. - Typed fixture cases drive an actual tool registered through the plugin registry harness. - A virtual plugin with a declared tools contract registers and executes its tool. - A virtual plugin without a tools contract records the canonical diagnostic and registers no tool. docsRefs: - docs/plugins/sdk-testing.md codeRefs: - src/plugin-sdk/plugin-test-contracts.ts - src/plugin-sdk/test-env.ts - src/plugin-sdk/test-fixtures.ts - src/plugins/contracts/plugin-testing-harness.contract.test.ts execution: kind: vitest path: src/plugins/contracts/plugin-testing-harness.contract.test.ts summary: Run the repo-local plugin harness across isolated state, typed fixtures, tool execution, and contract rejection.