Generally working.

This commit is contained in:
Your Name
2025-09-11 13:28:54 -04:00
parent e1741fb1fc
commit 22f6224008
14 changed files with 51 additions and 160 deletions

View File

@@ -1 +1 @@
09127399ac6d531773cafe433bd6ffd0592b04480543b8225ba17d48fd61b5ac
e3ba927d32ca105a8a4cafa2e013b97945a165c38e9ce573446a2332dc312fdb

View File

@@ -1,33 +0,0 @@
#!/bin/bash
# Admin Initialization Script for Ginxsom Testing
# Sets up the test admin key in the database
set -e
# Test admin public key (must match TEST_ADMIN_PUBKEY from admin_test.sh)
TEST_ADMIN_PUBKEY="2ef05348f28d24e0f0ed0751278442c27b62c823c37af8d8d89d8592c6ee84e7"
echo "Initializing admin access for testing..."
# Check if database exists
if [ ! -f "db/ginxsom.db" ]; then
echo "Error: Database db/ginxsom.db not found. Run ./db/init.sh first."
exit 1
fi
# Configure admin settings
sqlite3 db/ginxsom.db << EOF
INSERT OR REPLACE INTO config (key, value, description) VALUES
('admin_pubkey', '$TEST_ADMIN_PUBKEY', 'Nostr public key authorized for admin operations (test key)'),
('admin_enabled', 'true', 'Enable admin interface');
EOF
echo "Admin access configured successfully!"
echo "Test admin public key: $TEST_ADMIN_PUBKEY"
echo "Use private key from admin_test.sh to generate authentication tokens"
# Verify configuration
echo ""
echo "Current admin configuration:"
sqlite3 db/ginxsom.db "SELECT key, value FROM config WHERE key IN ('admin_pubkey', 'admin_enabled');"

View File

@@ -11,11 +11,16 @@ echo "=== BUD-06 Upload Requirements Test Suite ==="
SERVER_URL="http://localhost:9001"
UPLOAD_ENDPOINT="${SERVER_URL}/upload"
# Test file properties
TEST_SHA256="24308d48eb498b593e55a87b6300ccffdea8432babc0bb898b1eff21ebbb72de"
# Test file properties - generate unique hashes for each test run
TIMESTAMP=$(date +%s)
TEST_SHA256=$(echo "test_bud06_${TIMESTAMP}_$(uname -n)" | sha256sum | cut -d' ' -f1)
TEST_CONTENT_TYPE="image/png"
TEST_CONTENT_LENGTH="71418"
# Generate additional unique hashes for tests that need fresh hashes
TEST_SHA256_FRESH=$(echo "fresh_bud06_${TIMESTAMP}_$(uname -n)" | sha256sum | cut -d' ' -f1)
TEST_SHA256_AUTH=$(echo "auth_bud06_${TIMESTAMP}_$(uname -n)" | sha256sum | cut -d' ' -f1)
# Helper function to make HEAD request with custom headers
make_head_request() {
local sha256="$1"
@@ -59,11 +64,11 @@ echo ""
echo "=== Test 1: Valid Upload Requirements ==="
echo "Testing HEAD /upload with valid headers..."
RESPONSE=$(make_head_request "$TEST_SHA256" "$TEST_CONTENT_TYPE" "$TEST_CONTENT_LENGTH")
RESPONSE=$(make_head_request "$TEST_SHA256_FRESH" "$TEST_CONTENT_TYPE" "$TEST_CONTENT_LENGTH")
STATUS=$(get_status_code "$RESPONSE")
echo "Request Headers:"
echo " X-SHA-256: $TEST_SHA256"
echo " X-SHA-256: $TEST_SHA256_FRESH"
echo " X-Content-Type: $TEST_CONTENT_TYPE"
echo " X-Content-Length: $TEST_CONTENT_LENGTH"
echo ""
@@ -185,12 +190,12 @@ echo "=== Test 6: Unsupported Media Type ==="
echo "Testing HEAD /upload with potentially unsupported MIME type..."
UNSUPPORTED_TYPE="application/x-malware"
RESPONSE=$(make_head_request "$TEST_SHA256" "$UNSUPPORTED_TYPE" "$TEST_CONTENT_LENGTH")
RESPONSE=$(make_head_request "$TEST_SHA256_FRESH" "$UNSUPPORTED_TYPE" "$TEST_CONTENT_LENGTH")
STATUS=$(get_status_code "$RESPONSE")
REASON=$(get_x_reason "$RESPONSE")
echo "Request Headers:"
echo " X-SHA-256: $TEST_SHA256"
echo " X-SHA-256: $TEST_SHA256_FRESH"
echo " X-Content-Type: $UNSUPPORTED_TYPE"
echo " X-Content-Length: $TEST_CONTENT_LENGTH"
echo ""
@@ -267,13 +272,13 @@ echo "=== Test 9: Authorization Handling ==="
echo "Testing HEAD /upload authorization requirements..."
# Test without authorization first
RESPONSE=$(make_head_request "$TEST_SHA256" "$TEST_CONTENT_TYPE" "$TEST_CONTENT_LENGTH")
RESPONSE=$(make_head_request "$TEST_SHA256_AUTH" "$TEST_CONTENT_TYPE" "$TEST_CONTENT_LENGTH")
STATUS=$(get_status_code "$RESPONSE")
REASON=$(get_x_reason "$RESPONSE")
echo "Request Headers (no authorization):"
echo " X-SHA-256: $TEST_SHA256"
echo " X-Content-Type: $TEST_CONTENT_TYPE"
echo " X-SHA-256: $TEST_SHA256_AUTH"
echo " X-Content-Type: $TEST_CONTENT_TYPE"
echo " X-Content-Length: $TEST_CONTENT_LENGTH"
echo " Authorization: (missing)"
echo ""