-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathconfig_test.ml
71 lines (65 loc) · 2.14 KB
/
config_test.ml
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
module Config = Lambda_runtime__.Config
module StringMap = Map.Make (String)
let set_endpoint_env_var () =
let open Config in
Unix.putenv Env_vars.runtime_endpoint_var "localhost:8080";
()
let set_lambda_env_vars () =
let open Config in
Unix.putenv Env_vars.lambda_function_name "test_func";
Unix.putenv Env_vars.lambda_function_version "$LATEST";
Unix.putenv Env_vars.lambda_function_memory_size "128";
Unix.putenv Env_vars.lambda_log_stream_name "LogStreamName";
Unix.putenv Env_vars.lambda_log_group_name "LogGroup2";
()
let unset_env_vars () =
let open Config in
Unix.putenv Env_vars.runtime_endpoint_var "";
Unix.putenv Env_vars.lambda_function_name "";
Unix.putenv Env_vars.lambda_function_version "";
Unix.putenv Env_vars.lambda_function_memory_size "";
Unix.putenv Env_vars.lambda_log_stream_name "";
Unix.putenv Env_vars.lambda_log_group_name "";
()
let get_env () =
let env_lst = Array.to_list (Unix.environment ()) in
List.fold_left
(fun m var ->
match String.split_on_char '=' var with
| k :: v :: _ -> StringMap.add k v m
| _ -> m)
StringMap.empty
env_lst
let setup_and_run f () =
unset_env_vars ();
set_endpoint_env_var ();
set_lambda_env_vars ();
f ()
let suite =
[ ( "config from env vars"
, `Quick
, setup_and_run @@ fun () ->
match Config.get_function_settings ~env:(get_env ()) () with
| Ok env_settings ->
Alcotest.(
check
int
"memory size read from env"
128
env_settings.Config.memory_size)
| Error e -> Alcotest.fail e )
; ( "errors when vars are not set up"
, `Quick
, fun () ->
unset_env_vars ();
match Config.get_function_settings () with
| Ok _env_settings -> Alcotest.fail "Expected env to not be setup"
| Error _e -> Alcotest.(check pass "" 1 1) )
; ( "errors when runtime API endpoint is not set up"
, `Quick
, fun () ->
unset_env_vars ();
match Config.get_runtime_api_endpoint () with
| Ok _endpoint -> Alcotest.fail "Expected env to not be setup"
| Error _e -> Alcotest.(check pass "" 1 1) )
]