setup.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/env bash
  2. # Setup script for OpenCode plugin tests
  3. # Creates an isolated test environment with proper plugin installation
  4. set -euo pipefail
  5. # Get the repository root (two levels up from tests/opencode/)
  6. REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
  7. # Create temp home directory for isolation
  8. export TEST_HOME=$(mktemp -d)
  9. export HOME="$TEST_HOME"
  10. export XDG_CONFIG_HOME="$TEST_HOME/.config"
  11. # Install plugin to test location
  12. mkdir -p "$HOME/.config/opencode/superpowers"
  13. cp -r "$REPO_ROOT/lib" "$HOME/.config/opencode/superpowers/"
  14. cp -r "$REPO_ROOT/skills" "$HOME/.config/opencode/superpowers/"
  15. # Copy plugin directory
  16. mkdir -p "$HOME/.config/opencode/superpowers/.opencode/plugin"
  17. cp "$REPO_ROOT/.opencode/plugin/superpowers.js" "$HOME/.config/opencode/superpowers/.opencode/plugin/"
  18. # Register plugin via symlink
  19. mkdir -p "$HOME/.config/opencode/plugin"
  20. ln -sf "$HOME/.config/opencode/superpowers/.opencode/plugin/superpowers.js" \
  21. "$HOME/.config/opencode/plugin/superpowers.js"
  22. # Create test skills in different locations for testing
  23. # Personal test skill
  24. mkdir -p "$HOME/.config/opencode/skills/personal-test"
  25. cat > "$HOME/.config/opencode/skills/personal-test/SKILL.md" <<'EOF'
  26. ---
  27. name: personal-test
  28. description: Test personal skill for verification
  29. ---
  30. # Personal Test Skill
  31. This is a personal skill used for testing.
  32. PERSONAL_SKILL_MARKER_12345
  33. EOF
  34. # Create a project directory for project-level skill tests
  35. mkdir -p "$TEST_HOME/test-project/.opencode/skills/project-test"
  36. cat > "$TEST_HOME/test-project/.opencode/skills/project-test/SKILL.md" <<'EOF'
  37. ---
  38. name: project-test
  39. description: Test project skill for verification
  40. ---
  41. # Project Test Skill
  42. This is a project skill used for testing.
  43. PROJECT_SKILL_MARKER_67890
  44. EOF
  45. echo "Setup complete: $TEST_HOME"
  46. echo "Plugin installed to: $HOME/.config/opencode/superpowers/.opencode/plugin/superpowers.js"
  47. echo "Plugin registered at: $HOME/.config/opencode/plugin/superpowers.js"
  48. echo "Test project at: $TEST_HOME/test-project"
  49. # Helper function for cleanup (call from tests or trap)
  50. cleanup_test_env() {
  51. if [ -n "${TEST_HOME:-}" ] && [ -d "$TEST_HOME" ]; then
  52. rm -rf "$TEST_HOME"
  53. fi
  54. }
  55. # Export for use in tests
  56. export -f cleanup_test_env
  57. export REPO_ROOT