Plugin Testing
OpenClaw plugin용 테스트 유틸리티, 패턴, lint enforcement를 정리한 레퍼런스입니다.테스트 유틸리티
Import:openclaw/plugin-sdk/testing
제공 항목
| Export | Purpose |
|---|---|
installCommonResolveTargetErrorCases | target resolution 오류 처리 공통 테스트 케이스 |
shouldAckReaction | 채널이 ack reaction을 추가해야 하는지 판단 |
removeAckReactionAfterReply | reply 전송 후 ack reaction 제거 |
대표 테스트 패턴
Channel plugin 단위 테스트
- config에서 account를 올바르게 해석하는지
inspectAccount가 secret 값을 materialize하지 않는지- 누락된 config를 적절히 보고하는지
Provider plugin 단위 테스트
- dynamic model resolution이 기대한 모델 ID/provider/api를 반환하는지
- API 키가 있을 때 catalog가 정상 반환되는지
Runtime mocking
createPluginRuntimeStore를 쓰는 코드라면 테스트에서 PluginRuntime mock을 주입해 검증하는 패턴을 권장합니다.
Per-instance stub
prototype mutation보다 인스턴스별 stub을 권장합니다:Contract test
저장소 내부 번들 plugin은 contract test로 registration ownership을 검증합니다:- 어떤 plugin이 어떤 provider를 등록하는지
- speech/media/image/web search ownership
- registration shape
- runtime contract 준수
Lint enforcement
저장소 내부 plugin에는 다음 규칙이 강제됩니다:- monolithic root import 금지 (
openclaw/plugin-sdk) - 직접
src/import 금지 - 자기 plugin의
plugin-sdk/<name>self-import 금지