provisioning/.migration/agents/05_test_module.sh

97 lines
2.6 KiB
Bash
Raw Normal View History

#!/bin/bash
# Agent 5: Module Tester
# Tests that a module works correctly after migration
# Usage: ./05_test_module.sh module_name
if [ $# -eq 0 ]; then
echo "Usage: $0 <module_name>"
echo "Example: $0 servers"
echo "Example: $0 utils"
exit 1
fi
MODULE="$1"
case $MODULE in
"servers")
MODULE_PATH="core/nulib/servers"
TEST_COMMANDS=("./core/nulib/provisioning server help" "nu --ide-check core/nulib/servers/*.nu")
;;
"utils")
MODULE_PATH="core/nulib/lib_provisioning/utils"
TEST_COMMANDS=("nu --ide-check core/nulib/lib_provisioning/utils/*.nu")
;;
"taskservs")
MODULE_PATH="core/nulib/taskservs"
TEST_COMMANDS=("./core/nulib/provisioning taskserv help" "nu --ide-check core/nulib/taskservs/*.nu")
;;
"main")
MODULE_PATH="core/nulib/main_provisioning"
TEST_COMMANDS=("./core/nulib/provisioning help" "nu --ide-check core/nulib/main_provisioning/*.nu")
;;
*)
echo "❌ Unknown module: $MODULE"
echo "Available modules: servers, utils, taskservs, main"
exit 1
;;
esac
echo "🧪 Launching Module Tester Agent for: $MODULE"
# Create knowledge bundle for agent
KNOWLEDGE=$(cat << 'EOF'
# Module Testing Task
## Test Levels:
1. **Syntax**: nu --ide-check for all .nu files
2. **Import**: Check all imports resolve correctly
3. **Function**: Test key functions return expected types
4. **Integration**: Test module works with rest of system
## Success Criteria:
- All syntax validation passes
- No import errors
- Key functions return expected values
- No runtime errors in basic operations
## Report Format:
```json
{
"module": "servers",
"syntax_passed": true,
"imports_passed": true,
"functions_tested": 8,
"functions_passed": 8,
"integration_passed": true,
"errors": []
}
```
EOF
)
# Launch Claude Code agent
claude-code task \
--description "Test $MODULE module after migration" \
--prompt "$KNOWLEDGE
TARGET MODULE: $MODULE
MODULE PATH: $MODULE_PATH
TASK: Comprehensive testing of module functionality
TESTS TO RUN:
$(printf '%s\n' "${TEST_COMMANDS[@]}")
OUTPUT: JSON test report with pass/fail status and any errors found" \
--type "general-purpose" \
> ".migration/state/test_${MODULE}.json"
# Check if tests passed
if [ -f ".migration/state/test_${MODULE}.json" ]; then
echo "✅ Module testing complete for $MODULE"
echo "📊 Results in .migration/state/test_${MODULE}.json"
# Update migration state
echo "$(date): Tested module $MODULE" >> .migration/state/tests_completed.log
else
echo "❌ Module testing failed for $MODULE"
fi