mvp-factory-openhands/test-scripts/README.md

250 lines
5.7 KiB
Markdown

# Test Scripts - OpenHands SDK & Build Testing
This directory contains test scripts for the OpenHands SDK integration and build testing workflow.
## 📁 Contents
### SDK Wrapper Scripts
These scripts wrap the OpenHands CLI for various use cases:
- **`openhands-sdk-wrapper-sh.sh`** (Primary)
- Shell-compatible wrapper for n8n SSH execution
- Usage: `sh openhands-sdk-wrapper-sh.sh "Your task here"`
- Used in n8n workflows via SSH node
- **`openhands-sdk-wrapper.py`** (Python)
- Python wrapper for direct testing
- Usage: `python3 openhands-sdk-wrapper.py "Task description"`
- Requires OpenHands environment variables
- **`openhands-sdk-wrapper-fixed.py`** (Enhanced Python)
- Enhanced version with better error handling
- Usage: `python3 openhands-sdk-wrapper-fixed.py "Task description"`
- Includes environment validation
### Build & Test Scripts
Scripts for testing build and test workflows:
- **`build_test.sh`**
- Basic build test script
- Tests project build capabilities
- Usage: `sh build_test.sh`
- **`advanced_build_test.sh`**
- Advanced build with detailed logging
- Includes timeout handling
- More comprehensive output
- Usage: `sh advanced_build_test.sh`
- **`build-test-complete.sh`**
- Complete build test with verification
- Checks build artifacts
- Validates results
- Usage: `sh build-test-complete.sh`
### Diagnostic Scripts
Utility scripts for troubleshooting and environment checks:
- **`check_environment.sh`**
- Verifies system setup
- Checks OpenHands installation
- Validates environment variables
- Usage: `sh check_environment.sh`
- **`diagnose.sh`**
- General troubleshooting script
- Checks service status
- Reviews logs
- Usage: `sh diagnose.sh`
- **`explore.sh`**
- Explores project structure
- Lists directories and files
- Shows workspace contents
- Usage: `sh explore.sh`
## 🚀 Quick Start
### Test SDK Wrapper
```bash
# Test the main SDK wrapper
sh openhands-sdk-wrapper-sh.sh "Create a file named test.txt with content: Hello from SDK test"
# Test Python wrapper
python3 openhands-sdk-wrapper.py "List files in /home/bam/workspace"
```
### Run Build Tests
```bash
# Basic build test
sh build_test.sh
# Advanced build test
sh advanced_build_test.sh
# Complete build test
sh build-test-complete.sh
```
### Check System
```bash
# Verify environment
sh check_environment.sh
# Run diagnostics
sh diagnose.sh
# Explore workspace
sh explore.sh
```
## 📋 Integration with n8n
These scripts are used in n8n workflows via the SSH node:
```javascript
// In n8n SSH node:
Command: sh /home/bam/claude/mvp-factory/test-scripts/openhands-sdk-wrapper-sh.sh "{{ $json.task }}"
Authentication: privateKey
Options:
passThrough: true
```
## 🔧 Environment Requirements
### OpenHands Environment Variables
Required in `/home/bam/openhands/.env`:
- `MINIMAX_API_KEY` - Primary LLM API key
- `DEEPSEEK_API_KEY` - Backup LLM API key (optional)
- `OPENAI_API_KEY` - Second backup (optional)
### SSH Access
For n8n integration:
- SSH key: `/home/bam/.ssh/n8n_key`
- Permissions: `chmod 600 /home/bam/.ssh/n8n_key`
### Direct Testing
For local testing:
```bash
# Source OpenHands environment
source /home/bam/openhands/.env
# Test SDK directly
/home/bam/.local/bin/openhands --version
```
## 🎯 Usage Patterns
### 1. Testing from Command Line
```bash
# Navigate to test-scripts
cd /home/bam/claude/mvp-factory/test-scripts
# Test SDK with simple task
sh openhands-sdk-wrapper-sh.sh "Create and list a test file"
# Verify the test
ls -la /home/bam/workspace/
cat /home/bam/workspace/test_file.txt
```
### 2. Integration Testing
```bash
# Run full build test
sh advanced_build_test.sh
# Check results
tail -f /tmp/openhands-test.log
```
### 3. Troubleshooting
```bash
# Check environment setup
sh check_environment.sh
# Diagnose issues
sh diagnose.sh
# Explore workspace
sh explore.sh
```
## 📊 Expected Outputs
### Successful SDK Execution
```
✅ Task completed successfully
📁 Files created: test.txt
📝 Content: Hello from SDK test
```
### Build Test Success
```
🚀 Starting build test...
✅ Environment validated
✅ Dependencies installed
✅ Build completed
✅ Tests passed
🎉 Build test successful
```
### Environment Check
```
✅ OpenHands CLI: /home/bam/.local/bin/openhands (v1.3.0)
✅ API Keys: MiniMax configured
✅ Workspace: /home/bam/workspace accessible
✅ SSH Key: Present and readable
```
## 🐛 Troubleshooting
### "Command not found" errors
- Ensure OpenHands is installed: `/home/bam/.local/bin/openhands --version`
- Source environment: `source /home/bam/openhands/.env`
### "Permission denied" errors
- Check SSH key permissions: `chmod 600 /home/bam/.ssh/n8n_key`
- Verify file permissions: `chmod +x *.sh`
### API key errors
- Verify environment file: `cat /home/bam/openhands/.env`
- Check API key format (should not have extra spaces or quotes)
### SSH authentication fails
- Test SSH key: `ssh -i /home/bam/.ssh/n8n_key localhost`
- Check n8n credentials in n8n UI
## 📚 Related Documentation
- **Main Documentation:** `/home/bam/claude/mvp-factory/CLAUDE.md`
- **n8n API Guide:** https://n8n.oky.sh/api/v1/ (requires API token)
- **OpenHands CLI:** `/home/bam/.local/bin/openhands --help`
## 🔑 API Key Location
**n8n API Token:** `/home/bam/.n8n_api_key`
```bash
# View token (DO NOT commit this file)
cat /home/bam/.n8n_api_key
```
**OpenHands API Keys:** `/home/bam/openhands/.env`
```bash
# View OpenHands environment
cat /home/bam/openhands/.env
```
## ✅ Testing Checklist
- [ ] SDK wrapper executes without errors
- [ ] Tasks complete successfully
- [ ] Build tests pass
- [ ] Environment checks pass
- [ ] n8n integration works via SSH
- [ ] Webhook testing successful
---
*Last Updated: 2025-12-02*
*All scripts tested and working*