You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
4.1 KiB
136 lines
4.1 KiB
#!/bin/bash
|
|
|
|
BASE_URL="http://localhost:8888/api/v1"
|
|
MODULE="user"
|
|
TIMESTAMP=$(date +%s)
|
|
|
|
log_step() {
|
|
echo -e "\n\033[36m--- Step $1: $2 ---\033[0m"
|
|
}
|
|
|
|
log_success() {
|
|
echo -e "\033[32m[SUCCESS]\033[0m $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "\033[31m[ERROR]\033[0m $1"
|
|
}
|
|
|
|
extract_value() {
|
|
echo "$1" | grep -o "\"$2\":\"[^\"]*\"" | sed 's/"'"$2'""://' | sed 's/^"//' | sed 's/"$//'
|
|
}
|
|
|
|
extract_int() {
|
|
echo "$1" | grep -o "\"$2\":[^,}]*" | sed 's/"'"$2'"://' | tr -d ' '
|
|
}
|
|
|
|
AUTH_TOKEN=""
|
|
|
|
log_step "0" "Register admin"
|
|
REGISTER_RESULT=$(curl -s -X POST ${BASE_URL}/register -H "Content-Type: application/json" -d "{\"username\":\"admin${TIMESTAMP}\",\"email\":\"admin${TIMESTAMP}@example.com\",\"password\":\"password123\",\"phone\":\"13800138000\"}")
|
|
log_success "Register success"
|
|
echo "$REGISTER_RESULT"
|
|
|
|
log_step "0.1" "Admin login"
|
|
LOGIN_RESULT=$(curl -s -X POST ${BASE_URL}/login -H "Content-Type: application/json" -d "{\"email\":\"admin${TIMESTAMP}@example.com\",\"password\":\"password123\"}")
|
|
AUTH_TOKEN=$(extract_value "$LOGIN_RESULT" "token")
|
|
LOGIN_CODE=$(extract_int "$LOGIN_RESULT" "code")
|
|
|
|
if [ "$LOGIN_CODE" != "200" ] || [ -z "$AUTH_TOKEN" ]; then
|
|
log_error "Login failed"
|
|
echo "$LOGIN_RESULT"
|
|
exit 1
|
|
fi
|
|
|
|
log_success "Login success"
|
|
echo "$LOGIN_RESULT"
|
|
|
|
log_step "1" "Create user"
|
|
CREATE_RESULT=$(curl -s -X POST ${BASE_URL}/${MODULE} -H "Content-Type: application/json" -H "Authorization: Bearer ${AUTH_TOKEN}" -d "{\"username\":\"testuser${TIMESTAMP}\",\"email\":\"test${TIMESTAMP}@example.com\",\"password\":\"password123\",\"phone\":\"13800138000\"}")
|
|
ID=$(extract_int "$CREATE_RESULT" "id")
|
|
|
|
if [ -z "$ID" ]; then
|
|
log_error "Create failed"
|
|
echo "$CREATE_RESULT"
|
|
exit 1
|
|
fi
|
|
|
|
log_success "Create success, ID: $ID"
|
|
echo "$CREATE_RESULT"
|
|
|
|
log_step "2" "Query user"
|
|
QUERY_RESULT=$(curl -s -X GET ${BASE_URL}/${MODULE}/${ID} -H "Authorization: Bearer ${AUTH_TOKEN}")
|
|
QUERY_ID=$(extract_int "$QUERY_RESULT" "id")
|
|
|
|
if [ "$QUERY_ID" != "$ID" ]; then
|
|
log_error "Query failed"
|
|
echo "$QUERY_RESULT"
|
|
exit 1
|
|
fi
|
|
|
|
log_success "Query success"
|
|
echo "$QUERY_RESULT"
|
|
|
|
log_step "3" "Update user"
|
|
UPDATE_RESULT=$(curl -s -X PUT ${BASE_URL}/${MODULE}/${ID} -H "Content-Type: application/json" -H "Authorization: Bearer ${AUTH_TOKEN}" -d "{\"username\":\"testuser${TIMESTAMP}_updated\",\"phone\":\"13900139000\"}")
|
|
VERIFY_UPDATE_RESULT=$(curl -s -X GET ${BASE_URL}/${MODULE}/${ID} -H "Authorization: Bearer ${AUTH_TOKEN}")
|
|
VERIFY_USERNAME=$(extract_value "$VERIFY_UPDATE_RESULT" "username")
|
|
VERIFY_PHONE=$(extract_value "$VERIFY_UPDATE_RESULT" "phone")
|
|
EXPECTED_USERNAME="testuser${TIMESTAMP}_updated"
|
|
|
|
if [ "$VERIFY_USERNAME" != "$EXPECTED_USERNAME" ] || [ "$VERIFY_PHONE" != "13900139000" ]; then
|
|
log_error "Update failed"
|
|
echo "$VERIFY_UPDATE_RESULT"
|
|
exit 1
|
|
fi
|
|
|
|
log_success "Update success"
|
|
|
|
log_step "4" "Verify update"
|
|
VERIFY_RESULT=$(curl -s -X GET ${BASE_URL}/${MODULE}/${ID} -H "Authorization: Bearer ${AUTH_TOKEN}")
|
|
VERIFY_USERNAME=$(extract_value "$VERIFY_RESULT" "username")
|
|
|
|
if [ "$VERIFY_USERNAME" != "$EXPECTED_USERNAME" ]; then
|
|
log_error "Verify failed"
|
|
echo "$VERIFY_RESULT"
|
|
exit 1
|
|
fi
|
|
|
|
log_success "Verify success"
|
|
|
|
log_step "5" "List query"
|
|
LIST_RESULT=$(curl -s -X GET "${BASE_URL}/${MODULE}s?page=1&pageSize=10" -H "Authorization: Bearer ${AUTH_TOKEN}")
|
|
|
|
if echo "$LIST_RESULT" | grep -q "\"id\"; then
|
|
log_success "List success"
|
|
else
|
|
log_error "List failed"
|
|
echo "$LIST_RESULT"
|
|
exit 1
|
|
fi
|
|
|
|
log_step "6" "Delete user"
|
|
DELETE_RESULT=$(curl -s -X DELETE ${BASE_URL}/${MODULE}/${ID} -H "Authorization: Bearer ${AUTH_TOKEN}")
|
|
DELETE_CODE=$(extract_int "$DELETE_RESULT" "code")
|
|
|
|
if [ "$DELETE_CODE" = "200" ]; then
|
|
log_success "Delete success"
|
|
else
|
|
log_error "Delete failed"
|
|
echo "$DELETE_RESULT"
|
|
exit 1
|
|
fi
|
|
|
|
log_step "7" "Verify delete"
|
|
VERIFY_DELETE_RESULT=$(curl -s -X GET ${BASE_URL}/${MODULE}/${ID} -H "Authorization: Bearer ${AUTH_TOKEN}")
|
|
VERIFY_CODE=$(extract_int "$VERIFY_DELETE_RESULT" "code")
|
|
|
|
if [ "$VERIFY_CODE" = "404" ]; then
|
|
log_success "Verify success"
|
|
else
|
|
log_error "Verify failed"
|
|
echo "$VERIFY_DELETE_RESULT"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "\n\033[32m=== User module test completed ===\033[0m"
|
|
|