forked from project-zot/zot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathevents_config_decoding.bats
More file actions
123 lines (116 loc) · 3.4 KB
/
Copy pathevents_config_decoding.bats
File metadata and controls
123 lines (116 loc) · 3.4 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Note: Intended to be run as "make run-blackbox-tests" or "make run-blackbox-ci"
# Makefile target installs & checks all necessary tooling
# Extra tools that are not covered in Makefile target needs to be added in verify_prerequisites()
load helpers_zot
load helpers_events
load ../port_helper
function verify_prerequisites() {
if [ ! $(command -v curl) ]; then
echo "you need to install curl as a prerequisite to running the tests" >&3
return 1
fi
if [ ! $(command -v jq) ]; then
echo "you need to install jq as a prerequisite to running the tests" >&3
return 1
fi
if [ ! $(command -v docker) ]; then
echo "you need to install docker as a prerequisite to running the tests" >&3
return 1
fi
}
function setup_file() {
# verify prerequisites are available
if ! verify_prerequisites; then
exit 1
fi
}
@test "startup error when invalid sink is specified" {
# Setup zot server
local zot_root_dir=${BATS_FILE_TMPDIR}/zot
local zot_config_file=${BATS_FILE_TMPDIR}/zot_config.json
mkdir -p ${zot_root_dir}
zot_port=$(get_free_port_for_service "zot1")
cat > ${zot_config_file}<<EOF
{
"distSpecVersion": "1.1.1",
"storage": {
"rootDirectory": "${zot_root_dir}"
},
"http": {
"address": "0.0.0.0",
"port": "${zot_port}"
},
"log": {
"level": "debug",
"output": "${BATS_FILE_TMPDIR}/zot.log"
},
"extensions": {
"events": {
"enable": true,
"sinks": [
{
"type": "http",
"address": "http://127.0.0.1:${http_server_port}/events",
"timeout": "15s",
"credentials": {
"username": "jane.joe",
"password": "opensesame"
}
},
{
"type": "generic",
"address": "http://127.0.0.1:${http_server_port}/events",
"timeout": "15s",
"credentials": {
"username": "jane.joe",
"password": "opensesame"
}
}
]
}
}
}
EOF
run ${ZOT_PATH} verify ${zot_config_file}
[ "$status" -ne 0 ]
[[ "$output" =~ "event sink is not supported" ]]
}
@test "no error when valid sinks are specified" {
# Setup zot server
local zot_root_dir=${BATS_FILE_TMPDIR}/zot
local zot_config_file=${BATS_FILE_TMPDIR}/zot_config.json
mkdir -p ${zot_root_dir}
zot_port=$(get_free_port_for_service "zot2")
cat > ${zot_config_file}<<EOF
{
"distSpecVersion": "1.1.1",
"storage": {
"rootDirectory": "${zot_root_dir}"
},
"http": {
"address": "0.0.0.0",
"port": "${zot_port}"
},
"log": {
"level": "debug",
"output": "${BATS_FILE_TMPDIR}/zot.log"
},
"extensions": {
"events": {
"enable": true,
"sinks": [{
"type": "http",
"address": "http://127.0.0.1:${http_server_port}/events",
"timeout": "15s",
"credentials": {
"username": "jane.joe",
"password": "opensesame"
}
}]
}
}
}
EOF
run ${ZOT_PATH} verify ${zot_config_file}
[ "$status" -eq 0 ]
}