119 lines
4.2 KiB
Bash
Executable File
119 lines
4.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Exit on any error
|
|
set -e
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[0;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Set the DSN
|
|
DSN="https://725ff4678a4b447c8aa22450b64d66ae@bugsink.aenow.com/6"
|
|
echo -e "${BLUE}Testing with multiple environment variable options for DSN${NC}"
|
|
echo "DSN: $DSN"
|
|
|
|
# Function to verify results
|
|
verify_result() {
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✅ Test passed${NC}"
|
|
else
|
|
echo -e "${RED}❌ Test failed${NC}"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Build the application using build.sh
|
|
echo -e "\n${BLUE}Building go-sink using build.sh...${NC}"
|
|
./build.sh
|
|
verify_result
|
|
|
|
# Check if the darwin_arm64 binary exists
|
|
if [ ! -f "./dist/go-sink_darwin_arm64" ]; then
|
|
echo -e "${RED}❌ Binary for darwin/arm64 not found. Make sure build.sh completed successfully.${NC}"
|
|
exit 1
|
|
else
|
|
echo -e "${GREEN}✅ Binary found${NC}"
|
|
fi
|
|
|
|
# Check for running server instances and kill them
|
|
echo -e "\n${BLUE}Checking for existing go-sink server instances...${NC}"
|
|
pkill -f "go-sink.*server" || true
|
|
sleep 1
|
|
|
|
# Test 1a: Using GLITCHTIP_DSN with plain text
|
|
echo -e "\n${YELLOW}Test 1a: Using GLITCHTIP_DSN environment variable with plain text...${NC}"
|
|
export GLITCHTIP_DSN="$DSN"
|
|
export SENTRY_DSN=""
|
|
export BUGSINK_DSN=""
|
|
echo "Plain text test with GLITCHTIP_DSN" | ./dist/go-sink_darwin_arm64
|
|
verify_result
|
|
|
|
# Test 1b: Using GLITCHTIP_DSN with JSON
|
|
echo -e "\n${YELLOW}Test 1b: Using GLITCHTIP_DSN environment variable with JSON...${NC}"
|
|
echo '{"log_level": "error", "message": "JSON test with GLITCHTIP_DSN", "service": "test-suite", "test_id": "1b"}' | ./dist/go-sink_darwin_arm64
|
|
verify_result
|
|
|
|
# Test 2a: Using SENTRY_DSN with plain text
|
|
echo -e "\n${YELLOW}Test 2a: Using SENTRY_DSN environment variable with plain text...${NC}"
|
|
export GLITCHTIP_DSN=""
|
|
export SENTRY_DSN="$DSN"
|
|
export BUGSINK_DSN=""
|
|
echo "Plain text test with SENTRY_DSN" | ./dist/go-sink_darwin_arm64
|
|
verify_result
|
|
|
|
# Test 2b: Using SENTRY_DSN with JSON
|
|
echo -e "\n${YELLOW}Test 2b: Using SENTRY_DSN environment variable with JSON...${NC}"
|
|
echo '{"log_level": "error", "message": "JSON test with SENTRY_DSN", "service": "test-suite", "test_id": "2b"}' | ./dist/go-sink_darwin_arm64
|
|
verify_result
|
|
|
|
# Test 3a: Using BUGSINK_DSN with plain text
|
|
echo -e "\n${YELLOW}Test 3a: Using BUGSINK_DSN environment variable with plain text...${NC}"
|
|
export GLITCHTIP_DSN=""
|
|
export SENTRY_DSN=""
|
|
export BUGSINK_DSN="$DSN"
|
|
echo "Plain text test with BUGSINK_DSN" | ./dist/go-sink_darwin_arm64
|
|
verify_result
|
|
|
|
# Test 3b: Using BUGSINK_DSN with JSON
|
|
echo -e "\n${YELLOW}Test 3b: Using BUGSINK_DSN environment variable with JSON...${NC}"
|
|
echo '{"log_level": "error", "message": "JSON test with BUGSINK_DSN", "service": "test-suite", "test_id": "3b"}' | ./dist/go-sink_darwin_arm64
|
|
verify_result
|
|
|
|
# Test environment variable priority (GLITCHTIP_DSN should take precedence)
|
|
echo -e "\n${YELLOW}Test 4: Testing environment variable priority...${NC}"
|
|
export GLITCHTIP_DSN="$DSN"
|
|
export SENTRY_DSN="$DSN"
|
|
export BUGSINK_DSN="$DSN"
|
|
echo "Testing environment variable priority" | ./dist/go-sink_darwin_arm64
|
|
verify_result
|
|
|
|
# Start the server with GLITCHTIP_DSN for webhook tests
|
|
echo -e "\n${BLUE}Starting go-sink server with GLITCHTIP_DSN...${NC}"
|
|
export GLITCHTIP_DSN="$DSN"
|
|
export SENTRY_DSN=""
|
|
export BUGSINK_DSN=""
|
|
./dist/go-sink_darwin_arm64 server &
|
|
SERVER_PID=$!
|
|
|
|
# Give the server time to start
|
|
echo "Waiting for server to start..."
|
|
sleep 2
|
|
|
|
# Test 5: Send webhook request
|
|
echo -e "\n${YELLOW}Test 5: Sending a webhook request...${NC}"
|
|
curl -X POST -H "Content-Type: application/json" -d '{"log_level": "error", "message": "Error via webhook", "service": "test-suite", "test_id": "5"}' http://localhost:5050/webhook
|
|
verify_result
|
|
|
|
# Test 6: Send webhook batch request
|
|
echo -e "\n${YELLOW}Test 6: Sending a webhook batch request...${NC}"
|
|
curl -X POST -H "Content-Type: application/json" -d '[{"log_level": "error", "message": "Error in batch", "service": "test-suite", "test_id": "6.1"},{"log_level": "warning", "message": "Warning in batch", "service": "test-suite", "test_id": "6.2"}]' http://localhost:5050/webhook
|
|
verify_result
|
|
|
|
# Clean up the server
|
|
echo -e "\n${BLUE}Tests completed. Shutting down server...${NC}"
|
|
kill $SERVER_PID || true
|
|
|
|
echo -e "\n${GREEN}All tests passed successfully!${NC}" |