test: add complete iOS MVP business suite
This commit is contained in:
Executable
+53
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
keycloak_url="${KEYCLOAK_URL:-http://localhost:8081}"
|
||||
backend_url="${BACKEND_URL:-http://localhost:8080}"
|
||||
device_id="${IOS_DEVICE_ID:-$(xcrun simctl list devices booted -j | jq -r '.devices[][] | select(.state == "Booted") | .udid' | head -1)}"
|
||||
|
||||
if [[ -z "${device_id}" ]]; then
|
||||
echo 'No booted iOS simulator. Boot one or set IOS_DEVICE_ID.' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
curl --fail --silent "${backend_url}/actuator/health" >/dev/null
|
||||
|
||||
token() {
|
||||
curl --fail --silent --show-error \
|
||||
-X POST "${keycloak_url}/realms/aioa/protocol/openid-connect/token" \
|
||||
-H 'Content-Type: application/x-www-form-urlencoded' \
|
||||
--data-urlencode client_id=aioa-mobile \
|
||||
--data-urlencode grant_type=password \
|
||||
--data-urlencode "username=$1" \
|
||||
--data-urlencode "password=$2" | jq -r .access_token
|
||||
}
|
||||
|
||||
run_role() {
|
||||
local role="$1"
|
||||
local access_token="$2"
|
||||
local employee_access_token="$3"
|
||||
echo "Running iOS MVP scenario: ${role}"
|
||||
(
|
||||
cd "${root_dir}/mobile"
|
||||
flutter test integration_test/mvp_business_test.dart \
|
||||
-d "${device_id}" \
|
||||
--dart-define="AIOA_E2E_ACCESS_TOKEN=${access_token}" \
|
||||
--dart-define="AIOA_E2E_EMPLOYEE_TOKEN=${employee_access_token}" \
|
||||
--dart-define="AIOA_E2E_ROLE=${role}" \
|
||||
--dart-define="AIOA_API_BASE_URL=${backend_url}/api/v1"
|
||||
)
|
||||
}
|
||||
|
||||
employee_token="$(token employee 'Employee123!')"
|
||||
run_role employee "${employee_token}" "${employee_token}"
|
||||
|
||||
employee_token="$(token employee 'Employee123!')"
|
||||
manager_token="$(token manager 'Manager123!')"
|
||||
run_role manager "${manager_token}" "${employee_token}"
|
||||
|
||||
admin_token="$(token admin 'Admin123!')"
|
||||
run_role admin "${admin_token}" "${employee_token}"
|
||||
|
||||
echo 'All iOS MVP frontend business scenarios passed.'
|
||||
Reference in New Issue
Block a user