test-managed-acl.sh raw

   1  #!/bin/bash
   2  
   3  # Test script for Managed ACL functionality
   4  # This script runs all the managed ACL tests to ensure policy enforcement works correctly
   5  
   6  set -e
   7  
   8  # Pure Go build with purego - no CGO needed
   9  # libsecp256k1 is loaded dynamically at runtime if available
  10  export CGO_ENABLED=0
  11  if [ -f "$(dirname "$0")/../pkg/crypto/p8k/libsecp256k1.so" ]; then
  12      export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(dirname "$0")/../pkg/crypto/p8k"
  13  fi
  14  
  15  echo "๐Ÿงช Running Managed ACL Tests"
  16  echo "=============================="
  17  
  18  # Change to the project root
  19  cd "$(dirname "$0")"
  20  
  21  echo ""
  22  echo "๐Ÿ“‹ Test Categories:"
  23  echo "1. Managed ACL Policy Tests (pkg/acl/managed_minimal_test.go)"
  24  echo "2. HTTP API Tests (app/handle-nip86_minimal_test.go)"
  25  echo ""
  26  
  27  # Run managed ACL policy tests
  28  echo "๐Ÿ”’ Running Managed ACL Policy Tests..."
  29  go test -v ./pkg/acl -run TestManagedACL_BasicFunctionality
  30  if [ $? -eq 0 ]; then
  31      echo "โœ… Managed ACL Policy Tests PASSED"
  32  else
  33      echo "โŒ Managed ACL Policy Tests FAILED"
  34      exit 1
  35  fi
  36  
  37  echo ""
  38  
  39  # Run HTTP API tests
  40  echo "๐ŸŒ Running HTTP API Tests..."
  41  go test -v ./app -run TestHandleNIP86Management_Basic
  42  if [ $? -eq 0 ]; then
  43      echo "โœ… HTTP API Tests PASSED"
  44  else
  45      echo "โŒ HTTP API Tests FAILED"
  46      exit 1
  47  fi
  48  
  49  echo ""
  50  echo "๐ŸŽ‰ All Managed ACL Tests PASSED!"
  51  echo "=============================="
  52  echo ""
  53  echo "โœ… Policy enforcement is working correctly for:"
  54  echo "   - EVENT envelopes (event submission)"
  55  echo "   - REQ envelopes (event queries)"
  56  echo "   - HTTP API endpoints (NIP-86 management)"
  57  echo ""
  58  echo "๐Ÿ”’ Security features tested:"
  59  echo "   - Banned events are rejected"
  60  echo "   - Banned pubkeys are rejected"
  61  echo "   - Blocked IPs are rejected"
  62  echo "   - Disallowed event kinds are rejected"
  63  echo "   - Owner-only access to management API"
  64  echo "   - NIP-98 authentication validation"
  65  echo "   - AuthRequired configuration"
  66  echo ""
  67  echo "๐Ÿš€ The managed ACL system is ready for production use!"
  68