veza/tools/tests/http/test_registration_bug.sh

54 lines
1.6 KiB
Bash
Raw Normal View History

#!/bin/bash
# Test script to reproduce registration bug
# This is the RED test that should fail initially
set -euo pipefail
# Source test environment
cd "$(dirname "${BASH_SOURCE[0]}")/.."
source .env
source http/http_assert.sh
echo "Testing registration bug reproduction..."
# Test 1: Valid registration should return 201
TEST_EMAIL="user+bug$(date +%s)@lab.veza"
TEST_PASSWORD="V3za!test-$(date +%s)"
echo "Testing valid registration..."
response=$(curl -skw '\n%{http_code}\n' \
-H 'Content-Type: application/json' \
-d "{\"username\":\"testuser\",\"email\":\"$TEST_EMAIL\",\"password\":\"$TEST_PASSWORD\"}" \
"$API_ORIGIN/api/auth/register")
body=$(echo "$response" | sed '$d')
code=$(echo "$response" | tail -1)
echo "Response code: $code"
echo "Response body: $body"
# This should return 201 but might return 4xx/5xx
if [ "$code" -ne 201 ]; then
echo "❌ BUG CONFIRMED: Registration returns $code instead of 201"
echo "Body: $body"
exit 1
else
echo "✅ Registration returned 201 as expected"
fi
# Test 2: Duplicate registration should return 409
echo -e "\nTesting duplicate registration..."
response=$(curl -skw '\n%{http_code}\n' \
-H 'Content-Type: application/json' \
-d "{\"username\":\"testuser\",\"email\":\"$TEST_EMAIL\",\"password\":\"$TEST_PASSWORD\"}" \
"$API_ORIGIN/api/auth/register")
code=$(echo "$response" | tail -1)
if [ "$code" -ne 409 ]; then
echo "❌ Duplicate registration returns $code instead of 409"
exit 1
else
echo "✅ Duplicate registration correctly returns 409"
fi
echo -e "\n✅ All registration tests passed!"