82 lines
2.6 KiB
Bash
82 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
# Test: Plugin Loading
|
|
# Verifies that the superpowers plugin loads correctly in OpenCode
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
echo "=== Test: Plugin Loading ==="
|
|
|
|
# Source setup to create isolated environment
|
|
source "$SCRIPT_DIR/setup.sh"
|
|
|
|
# Trap to cleanup on exit
|
|
trap cleanup_test_env EXIT
|
|
|
|
# Test 1: Verify plugin file exists and is registered
|
|
echo "Test 1: Checking plugin registration..."
|
|
if [ -L "$HOME/.config/opencode/plugin/superpowers.js" ]; then
|
|
echo " [PASS] Plugin symlink exists"
|
|
else
|
|
echo " [FAIL] Plugin symlink not found at $HOME/.config/opencode/plugin/superpowers.js"
|
|
exit 1
|
|
fi
|
|
|
|
# Verify symlink target exists
|
|
if [ -f "$(readlink -f "$HOME/.config/opencode/plugin/superpowers.js")" ]; then
|
|
echo " [PASS] Plugin symlink target exists"
|
|
else
|
|
echo " [FAIL] Plugin symlink target does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 2: Verify lib/skills-core.js is in place
|
|
echo "Test 2: Checking skills-core.js..."
|
|
if [ -f "$HOME/.config/opencode/superpowers/lib/skills-core.js" ]; then
|
|
echo " [PASS] skills-core.js exists"
|
|
else
|
|
echo " [FAIL] skills-core.js not found"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 3: Verify skills directory is populated
|
|
echo "Test 3: Checking skills directory..."
|
|
skill_count=$(find "$HOME/.config/opencode/superpowers/skills" -name "SKILL.md" | wc -l)
|
|
if [ "$skill_count" -gt 0 ]; then
|
|
echo " [PASS] Found $skill_count skills installed"
|
|
else
|
|
echo " [FAIL] No skills found in installed location"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 4: Check using-superpowers skill exists (critical for bootstrap)
|
|
echo "Test 4: Checking using-superpowers skill (required for bootstrap)..."
|
|
if [ -f "$HOME/.config/opencode/superpowers/skills/using-superpowers/SKILL.md" ]; then
|
|
echo " [PASS] using-superpowers skill exists"
|
|
else
|
|
echo " [FAIL] using-superpowers skill not found (required for bootstrap)"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 5: Verify plugin JavaScript syntax (basic check)
|
|
echo "Test 5: Checking plugin JavaScript syntax..."
|
|
plugin_file="$HOME/.config/opencode/superpowers/.opencode/plugin/superpowers.js"
|
|
if node --check "$plugin_file" 2>/dev/null; then
|
|
echo " [PASS] Plugin JavaScript syntax is valid"
|
|
else
|
|
echo " [FAIL] Plugin has JavaScript syntax errors"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 6: Verify personal test skill was created
|
|
echo "Test 6: Checking test fixtures..."
|
|
if [ -f "$HOME/.config/opencode/skills/personal-test/SKILL.md" ]; then
|
|
echo " [PASS] Personal test skill fixture created"
|
|
else
|
|
echo " [FAIL] Personal test skill fixture not found"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== All plugin loading tests passed ==="
|