setup.sh 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. export OPENCODE_CONFIG_DIR="$TEST_HOME/.config/opencode"
  12. # Install plugin to test location
  13. mkdir -p "$HOME/.config/opencode/superpowers"
  14. cp -r "$REPO_ROOT/lib" "$HOME/.config/opencode/superpowers/"
  15. cp -r "$REPO_ROOT/skills" "$HOME/.config/opencode/superpowers/"
  16. # Copy plugin directory
  17. mkdir -p "$HOME/.config/opencode/superpowers/.opencode/plugin"
  18. cp "$REPO_ROOT/.opencode/plugin/superpowers.js" "$HOME/.config/opencode/superpowers/.opencode/plugin/"
  19. # Register plugin via symlink
  20. mkdir -p "$HOME/.config/opencode/plugin"
  21. ln -sf "$HOME/.config/opencode/superpowers/.opencode/plugin/superpowers.js" \
  22. "$HOME/.config/opencode/plugin/superpowers.js"
  23. # Create test skills in different locations for testing
  24. # Personal test skill
  25. mkdir -p "$HOME/.config/opencode/skills/personal-test"
  26. cat > "$HOME/.config/opencode/skills/personal-test/SKILL.md" <<'EOF'
  27. ---
  28. name: personal-test
  29. description: Test personal skill for verification
  30. ---
  31. # Personal Test Skill
  32. This is a personal skill used for testing.
  33. PERSONAL_SKILL_MARKER_12345
  34. EOF
  35. # Create a project directory for project-level skill tests
  36. mkdir -p "$TEST_HOME/test-project/.opencode/skills/project-test"
  37. cat > "$TEST_HOME/test-project/.opencode/skills/project-test/SKILL.md" <<'EOF'
  38. ---
  39. name: project-test
  40. description: Test project skill for verification
  41. ---
  42. # Project Test Skill
  43. This is a project skill used for testing.
  44. PROJECT_SKILL_MARKER_67890
  45. EOF
  46. echo "Setup complete: $TEST_HOME"
  47. echo "Plugin installed to: $HOME/.config/opencode/superpowers/.opencode/plugin/superpowers.js"
  48. echo "Plugin registered at: $HOME/.config/opencode/plugin/superpowers.js"
  49. echo "Test project at: $TEST_HOME/test-project"
  50. # Helper function for cleanup (call from tests or trap)
  51. cleanup_test_env() {
  52. if [ -n "${TEST_HOME:-}" ] && [ -d "$TEST_HOME" ]; then
  53. rm -rf "$TEST_HOME"
  54. fi
  55. }
  56. # Export for use in tests
  57. export -f cleanup_test_env
  58. export REPO_ROOT