54 lines
1.6 KiB
Bash
54 lines
1.6 KiB
Bash
|
|
#!/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!"
|