forked from BasedHardware/omi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidate_mobile_build_config_test.sh
More file actions
executable file
·90 lines (79 loc) · 2.84 KB
/
Copy pathvalidate_mobile_build_config_test.sh
File metadata and controls
executable file
·90 lines (79 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
VALIDATOR="$ROOT_DIR/scripts/validate_mobile_build_config.sh"
fixture_dir="$(mktemp -d "${TMPDIR:-/tmp}/omi-mobile-build-config.XXXXXX")"
trap 'find "$fixture_dir" -type f -delete; rmdir "$fixture_dir"' EXIT
printf '%s\n' \
'API_BASE_URL=http://192.168.1.212:8000/' \
'USE_WEB_AUTH=true' \
'USE_AUTH_CUSTOM_TOKEN=true' >"$fixture_dir/.dev.env"
valid_output="$(
cd "$fixture_dir"
"$VALIDATOR" --flavor dev --profile local_dev
)"
[[ "$valid_output" == *'flavor=dev profile=local_dev'* ]]
if (
cd "$fixture_dir"
"$VALIDATOR" --flavor prod --profile local_dev
) 2>"$fixture_dir/mismatch.err"; then
echo 'FAIL: accepted prod/local_dev pairing' >&2
exit 1
fi
grep -F "requires OMI_APP_PROFILE=mobile_beta" "$fixture_dir/mismatch.err" >/dev/null
printf '%s\n' \
'API_BASE_URL=http://192.168.1.212:8000/' \
'USE_WEB_AUTH=false' \
'USE_AUTH_CUSTOM_TOKEN=true' >"$fixture_dir/.dev.env"
if (
cd "$fixture_dir"
"$VALIDATOR" --flavor dev
) 2>"$fixture_dir/flags.err"; then
echo 'FAIL: accepted native-auth local build without web auth' >&2
exit 1
fi
grep -F 'USE_WEB_AUTH=true' "$fixture_dir/flags.err" >/dev/null
printf '%s\n' \
'API_BASE_URL=https://api.omiapi.com/' \
'USE_WEB_AUTH=true' \
'USE_AUTH_CUSTOM_TOKEN=true' >"$fixture_dir/.env"
prod_output="$(
cd "$fixture_dir"
"$VALIDATOR" --flavor prod --profile mobile_beta
)"
[[ "$prod_output" == *'flavor=prod profile=mobile_beta'* ]]
rm "$fixture_dir/.env"
if (
cd "$fixture_dir"
"$VALIDATOR" --flavor prod --profile mobile_beta
) 2>"$fixture_dir/missing.err"; then
echo 'FAIL: accepted a production build without its env file' >&2
exit 1
fi
grep -F 'missing .env' "$fixture_dir/missing.err" >/dev/null
printf '%s\n' \
'API_BASE_URL=https://api.omiapi.com/' \
'USE_WEB_AUTH=true' \
'USE_AUTH_CUSTOM_TOKEN=false' >"$fixture_dir/.env"
if (
cd "$fixture_dir"
"$VALIDATOR" --flavor prod
) 2>"$fixture_dir/custom-token.err"; then
echo 'FAIL: accepted a build without custom-token auth' >&2
exit 1
fi
grep -F 'USE_AUTH_CUSTOM_TOKEN=true' "$fixture_dir/custom-token.err" >/dev/null
source "$ROOT_DIR/setup.sh" >/dev/null
if validate_flutter_profile_arg mobile_beta --dart-define=OMI_APP_PROFILE=production 2>"$fixture_dir/wrapper.err"; then
echo 'FAIL: wrapper accepted a conflicting profile define' >&2
exit 1
fi
grep -F "requires OMI_APP_PROFILE=mobile_beta" "$fixture_dir/wrapper.err" >/dev/null
if validate_flutter_profile_arg mobile_beta \
--dart-define=OMI_APP_PROFILE=mobile_beta \
--dart-define=OMI_APP_PROFILE=mobile_beta 2>"$fixture_dir/duplicate.err"; then
echo 'FAIL: wrapper accepted duplicate profile defines' >&2
exit 1
fi
grep -F 'pass OMI_APP_PROFILE only once' "$fixture_dir/duplicate.err" >/dev/null
echo 'validate_mobile_build_config rejects invalid flavor/profile and auth settings'