Initial commit
This commit is contained in:
112
commands/test.md
Normal file
112
commands/test.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Turboshovel Plugin Test
|
||||
|
||||
Interactive test command for verifying plugin integration and gate configuration.
|
||||
|
||||
## Instructions
|
||||
|
||||
Run these diagnostic steps to verify the Turboshovel plugin is working correctly:
|
||||
|
||||
### 1. Check Plugin Status
|
||||
|
||||
First, verify the plugin loaded without errors:
|
||||
- Run `/plugin` and check for any turboshovel errors in "Installation Errors"
|
||||
- If errors exist, check `~/.claude/debug/latest` for details
|
||||
|
||||
### 2. Check Logging
|
||||
|
||||
Logging is **enabled by default**. View recent log entries:
|
||||
|
||||
```bash
|
||||
# Show log file path
|
||||
mise run logs:path
|
||||
|
||||
# Tail logs in a separate terminal
|
||||
mise run logs
|
||||
# or: mise run logs:pretty
|
||||
```
|
||||
|
||||
To disable logging: `TURBOSHOVEL_LOG=0`
|
||||
|
||||
### 3. Test Hook Invocation
|
||||
|
||||
To verify hooks are firing, perform these actions and watch the logs:
|
||||
|
||||
**Test PostToolUse hook:**
|
||||
- Edit any file (triggers PostToolUse)
|
||||
- Check logs for `HOOK_INVOKED` with `hook_event_name: "PostToolUse"`
|
||||
|
||||
**Test UserPromptSubmit hook:**
|
||||
- Submit any prompt (this one counts!)
|
||||
- Check logs for `hook_event_name: "UserPromptSubmit"`
|
||||
|
||||
### 4. Check Gates Configuration
|
||||
|
||||
Verify gates.json exists and is valid:
|
||||
|
||||
```bash
|
||||
# Check project gates
|
||||
cat .claude/gates.json 2>/dev/null || echo "No project gates.json"
|
||||
|
||||
# Check plugin default gates
|
||||
cat plugin/hooks/gates.json 2>/dev/null || echo "No plugin gates.json"
|
||||
```
|
||||
|
||||
### 5. Test a Gate Manually
|
||||
|
||||
Test the CLI directly with simulated hook input:
|
||||
|
||||
```bash
|
||||
# Test SessionStart (should return context injection)
|
||||
echo '{"hook_event_name":"SessionStart","cwd":"'$(pwd)'"}' | \
|
||||
node plugin/hooks/hooks-app/dist/cli.js
|
||||
|
||||
# Test PostToolUse with Edit tool
|
||||
echo '{"hook_event_name":"PostToolUse","tool_name":"Edit","cwd":"'$(pwd)'"}' | \
|
||||
node plugin/hooks/hooks-app/dist/cli.js
|
||||
|
||||
# Test UserPromptSubmit with keyword matching
|
||||
echo '{"hook_event_name":"UserPromptSubmit","user_message":"please run lint","cwd":"'$(pwd)'"}' | \
|
||||
node plugin/hooks/hooks-app/dist/cli.js
|
||||
```
|
||||
|
||||
### 6. Session State
|
||||
|
||||
Check current session state:
|
||||
|
||||
```bash
|
||||
node plugin/hooks/hooks-app/dist/cli.js session get edited_files .
|
||||
node plugin/hooks/hooks-app/dist/cli.js session get file_extensions .
|
||||
```
|
||||
|
||||
Clear session state:
|
||||
```bash
|
||||
node plugin/hooks/hooks-app/dist/cli.js session clear .
|
||||
```
|
||||
|
||||
## Expected Results
|
||||
|
||||
When working correctly, you should see:
|
||||
|
||||
1. **SessionStart**: Returns `additionalContext` with Turboshovel welcome message
|
||||
2. **PostToolUse (Edit)**: May trigger gates based on your `gates.json` configuration
|
||||
3. **UserPromptSubmit**: May inject context or trigger keyword-matched gates
|
||||
4. **Logs**: Show `HOOK_INVOKED` entries for each hook event
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Symptom | Cause | Fix |
|
||||
|---------|-------|-----|
|
||||
| Plugin errors on load | Invalid hooks.json | Check for unsupported hook types |
|
||||
| Gates not firing | No gates.json | Create `.claude/gates.json` |
|
||||
| Wrong cwd in logs | Plugin path issue | Check `CLAUDE_PLUGIN_ROOT` resolution |
|
||||
| Too many logs | Logging enabled by default | Set `TURBOSHOVEL_LOG=0` |
|
||||
|
||||
## Arguments
|
||||
|
||||
$ARGUMENTS
|
||||
|
||||
If arguments provided, interpret as specific test to run:
|
||||
- `hooks` - Focus on hook invocation testing
|
||||
- `gates` - Focus on gate configuration testing
|
||||
- `logs` - Focus on logging setup
|
||||
- `session` - Focus on session state testing
|
||||
Reference in New Issue
Block a user