MAESTRO: Add smoke test script for OpenClaw plugin registration validation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
/**
|
||||
* Smoke test for OpenClaw claude-mem plugin registration.
|
||||
* Validates the plugin structure works independently of the full OpenClaw runtime.
|
||||
*
|
||||
* Run: node test-sse-consumer.js
|
||||
*/
|
||||
|
||||
import claudeMemPlugin from "./dist/index.js";
|
||||
|
||||
let registeredService = null;
|
||||
let registeredCommand = null;
|
||||
const logs = [];
|
||||
|
||||
const mockApi = {
|
||||
getConfig: () => ({}),
|
||||
log: (message) => {
|
||||
logs.push(message);
|
||||
},
|
||||
registerService: (service) => {
|
||||
registeredService = service;
|
||||
},
|
||||
registerCommand: (command) => {
|
||||
registeredCommand = command;
|
||||
},
|
||||
runtime: {
|
||||
channel: {
|
||||
telegram: { sendMessageTelegram: async () => {} },
|
||||
discord: { sendMessageDiscord: async () => {} },
|
||||
signal: { sendMessageSignal: async () => {} },
|
||||
slack: { sendMessageSlack: async () => {} },
|
||||
whatsapp: { sendMessageWhatsApp: async () => {} },
|
||||
line: { sendMessageLine: async () => {} },
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
// Call the default export with mock API
|
||||
claudeMemPlugin(mockApi);
|
||||
|
||||
// Verify service registration
|
||||
let failures = 0;
|
||||
|
||||
if (!registeredService) {
|
||||
console.error("FAIL: No service was registered");
|
||||
failures++;
|
||||
} else if (registeredService.id !== "claude-mem-observation-feed") {
|
||||
console.error(
|
||||
`FAIL: Service ID is "${registeredService.id}", expected "claude-mem-observation-feed"`
|
||||
);
|
||||
failures++;
|
||||
} else {
|
||||
console.log("OK: Service registered with id 'claude-mem-observation-feed'");
|
||||
}
|
||||
|
||||
if (!registeredCommand) {
|
||||
console.error("FAIL: No command was registered");
|
||||
failures++;
|
||||
} else if (registeredCommand.name !== "claude-mem-feed") {
|
||||
console.error(
|
||||
`FAIL: Command name is "${registeredCommand.name}", expected "claude-mem-feed"`
|
||||
);
|
||||
failures++;
|
||||
} else {
|
||||
console.log("OK: Command registered with name 'claude-mem-feed'");
|
||||
}
|
||||
|
||||
if (!logs.some((l) => l.includes("plugin loaded"))) {
|
||||
console.error("FAIL: Plugin did not log a load message");
|
||||
failures++;
|
||||
} else {
|
||||
console.log("OK: Plugin logged load message");
|
||||
}
|
||||
|
||||
if (failures > 0) {
|
||||
console.error(`\nFAIL: ${failures} check(s) failed`);
|
||||
process.exit(1);
|
||||
} else {
|
||||
console.log("\nPASS: Plugin registers service and command correctly");
|
||||
}
|
||||
Reference in New Issue
Block a user