Skip to content

Commit ff141e9

Browse files
committed
[Testing/CI] Added first bats test
1 parent fe4e3bb commit ff141e9

File tree

1 file changed

+398
-0
lines changed

1 file changed

+398
-0
lines changed

test/test.bats

Lines changed: 398 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,398 @@
1+
#!/usr/bin/env bats
2+
3+
load 'test_helper/bats-support/load'
4+
load 'test_helper/bats-assert/load'
5+
load 'test_helper/bats-file/load'
6+
7+
8+
function random() {
9+
MATRIX='0123456789'
10+
LENGTH=$1
11+
while [ ${n:=1} -le $LENGTH ]; do
12+
rand="$rand${MATRIX:$(($RANDOM%${#MATRIX})):1}"
13+
let n+=1
14+
done
15+
echo "$rand"
16+
}
17+
18+
function setup() {
19+
# echo "# Setup_file" > &3
20+
if [ $BATS_TEST_NUMBER = 1 ]; then
21+
echo 'user=test-5285' > /tmp/hestia-test-env.sh
22+
echo 'userpass1=test-5285' >> /tmp/hestia-test-env.sh
23+
echo 'userpass2=t3st-p4ssw0rd' >> /tmp/hestia-test-env.sh
24+
echo 'HESTIA=/usr/local/hestia' >> /tmp/hestia-test-env.sh
25+
echo 'domain=test-5285.hestiacp.com' >> /tmp/hestia-test-env.sh
26+
fi
27+
28+
source /tmp/hestia-test-env.sh
29+
source $HESTIA/func/main.sh
30+
}
31+
32+
#----------------------------------------------------------#
33+
# MAIN #
34+
#----------------------------------------------------------#
35+
36+
@test "Add new userXXX" {
37+
skip
38+
run v-add-user $user $user $user@hestiacp.com default Super Test
39+
assert_success
40+
refute_output
41+
}
42+
43+
44+
#----------------------------------------------------------#
45+
# User #
46+
#----------------------------------------------------------#
47+
48+
@test "Add new user" {
49+
run v-add-user $user $user $user@hestiacp.com default Super Test
50+
assert_success
51+
refute_output
52+
}
53+
54+
@test "Change user password" {
55+
run v-change-user-password "$user" t3st-p4ssw0rd
56+
assert_success
57+
refute_output
58+
}
59+
60+
@test "Change user email" {
61+
run v-change-user-contact "$user" tester@hestiacp.com
62+
assert_success
63+
refute_output
64+
}
65+
66+
@test "Change user contact invalid email " {
67+
run v-change-user-contact "$user" testerhestiacp.com
68+
assert_failure $E_INVALID
69+
assert_output --partial 'Error: invalid email format'
70+
}
71+
72+
@test "Change user shell" {
73+
run v-change-user-shell $user bash
74+
assert_success
75+
refute_output
76+
}
77+
78+
@test "Change user invalid shell" {
79+
run v-change-user-shell $user bashinvalid
80+
assert_failure $E_INVALID
81+
assert_output --partial 'shell bashinvalid is not valid'
82+
}
83+
84+
@test "Change user default ns" {
85+
run v-change-user-ns $user ns0.com ns1.com ns2.com ns3.com
86+
assert_success
87+
refute_output
88+
89+
run v-list-user-ns "$user" plain
90+
assert_success
91+
assert_output --partial 'ns0.com'
92+
}
93+
94+
#----------------------------------------------------------#
95+
# Cron #
96+
#----------------------------------------------------------#
97+
98+
@test "Cron: Add cron job" {
99+
run v-add-cron-job $user 1 1 1 1 1 echo
100+
assert_success
101+
refute_output
102+
}
103+
104+
@test "Cron: Suspend cron job" {
105+
run v-suspend-cron-job $user 1
106+
assert_success
107+
refute_output
108+
}
109+
110+
@test "Cron: Unsuspend cron job" {
111+
run v-unsuspend-cron-job $user 1
112+
assert_success
113+
refute_output
114+
}
115+
116+
@test "Cron: Delete cron job" {
117+
run v-delete-cron-job $user 1
118+
assert_success
119+
refute_output
120+
}
121+
122+
@test "Cron: Add cron job (duplicate)" {
123+
run v-add-cron-job $user 1 1 1 1 1 echo 1
124+
assert_success
125+
refute_output
126+
127+
run v-add-cron-job $user 1 1 1 1 1 echo 1
128+
assert_failure $E_EXISTS
129+
assert_output --partial 'JOB=1 is already exists'
130+
}
131+
132+
@test "Cron: Second cron job" {
133+
run v-add-cron-job $user 2 2 2 2 2 echo 2
134+
assert_success
135+
refute_output
136+
}
137+
138+
@test "Cron: Two cron jobs must be listed" {
139+
run v-list-cron-jobs $user csv
140+
assert_success
141+
assert_line --partial '1,1,1,1,1,"echo",no'
142+
assert_line --partial '2,2,2,2,2,"echo",no'
143+
}
144+
145+
@test "Cron: rebuild" {
146+
run v-rebuild-cron-jobs $user
147+
assert_success
148+
refute_output
149+
}
150+
151+
#----------------------------------------------------------#
152+
# IP #
153+
#----------------------------------------------------------#
154+
155+
@test "Ip: Add new ip on first interface" {
156+
interface=$(v-list-sys-interfaces plain | head -n 1)
157+
run ip link show dev $interface
158+
assert_success
159+
echo "interface=${interface}" >> /tmp/hestia-test-env.sh
160+
161+
run v-add-sys-ip 198.18.0.123 255.255.255.255 $interface $user
162+
assert_success
163+
refute_output
164+
}
165+
166+
@test "Ip: Add duplicate (duplicat)" {
167+
run v-add-sys-ip 198.18.0.123 255.255.255.255 $interface $user
168+
assert_failure $E_EXISTS
169+
}
170+
171+
@test "Ip: Delete ip" {
172+
run v-delete-sys-ip 198.18.0.123
173+
assert_success
174+
refute_output
175+
}
176+
177+
@test "Ip: Add IP for rest of the test" {
178+
run v-add-sys-ip 198.18.0.125 255.255.255.255 $interface $user
179+
assert_success
180+
refute_output
181+
}
182+
183+
184+
#----------------------------------------------------------#
185+
# WEB #
186+
#----------------------------------------------------------#
187+
188+
@test "WEB: Add web domain" {
189+
run v-add-web-domain $user $domain 198.18.0.125
190+
assert_success
191+
refute_output
192+
}
193+
194+
@test "WEB: Add web domain (duplicate)" {
195+
run v-add-web-domain $user $domain 198.18.0.125
196+
assert_failure $E_EXISTS
197+
}
198+
199+
@test "WEB: Add web domain alias" {
200+
run v-add-web-domain-alias $user $domain v3.$domain
201+
assert_success
202+
refute_output
203+
}
204+
205+
@test "WEB: Add web domain alias (duplicate)" {
206+
run v-add-web-domain-alias $user $domain v3.$domain
207+
assert_failure $E_EXISTS
208+
}
209+
210+
@test "WEB: Add web domain stats" {
211+
run v-add-web-domain-stats $user $domain awstats
212+
assert_success
213+
refute_output
214+
}
215+
216+
@test "WEB: Add web domain stats user" {
217+
skip
218+
run v-add-web-domain-stats-user $user $domain test m3g4p4ssw0rd
219+
assert_success
220+
refute_output
221+
}
222+
223+
@test "WEB: Suspend web domain" {
224+
run v-suspend-web-domain $user $domain
225+
assert_success
226+
refute_output
227+
}
228+
229+
@test "WEB: Unsuspend web domain" {
230+
run v-unsuspend-web-domain $user $domain
231+
assert_success
232+
refute_output
233+
}
234+
235+
@test "WEB: Add ssl" {
236+
cp -f $HESTIA/ssl/certificate.crt /tmp/$domain.crt
237+
cp -f $HESTIA/ssl/certificate.key /tmp/$domain.key
238+
239+
run v-add-web-domain-ssl $user $domain /tmp
240+
assert_success
241+
refute_output
242+
}
243+
244+
@test "WEB: Rebuild web domain" {
245+
run v-rebuild-web-domains $user
246+
assert_success
247+
refute_output
248+
}
249+
250+
251+
#----------------------------------------------------------#
252+
# DNS #
253+
#----------------------------------------------------------#
254+
255+
@test "DNS: Add domain" {
256+
run v-add-dns-domain $user $domain 198.18.0.125
257+
assert_success
258+
refute_output
259+
}
260+
261+
@test "DNS: Add domain (duplicate)" {
262+
run v-add-dns-domain $user $domain 198.18.0.125
263+
assert_failure $E_EXISTS
264+
}
265+
266+
@test "DNS: Add domain record" {
267+
run v-add-dns-record $user $domain test A 198.18.0.125 20
268+
assert_success
269+
refute_output
270+
}
271+
272+
@test "DNS: Delete domain record" {
273+
run v-delete-dns-record $user $domain 20
274+
assert_success
275+
refute_output
276+
}
277+
278+
@test "DNS: Delete missing domain record" {
279+
run v-delete-dns-record $user $domain 20
280+
assert_failure $E_NOTEXIST
281+
}
282+
283+
@test "DNS: Change domain expire date" {
284+
run v-change-dns-domain-exp $user $domain 2020-01-01
285+
assert_success
286+
refute_output
287+
}
288+
289+
@test "DNS: Change domain ip" {
290+
run v-change-dns-domain-ip $user $domain 127.0.0.1
291+
assert_success
292+
refute_output
293+
}
294+
295+
@test "DNS: Suspend domain" {
296+
run v-suspend-dns-domain $user $domain
297+
assert_success
298+
refute_output
299+
}
300+
301+
@test "DNS: Unsuspend domain" {
302+
run v-unsuspend-dns-domain $user $domain
303+
assert_success
304+
refute_output
305+
}
306+
307+
@test "DNS: Rebuild" {
308+
run v-rebuild-dns-domains $user
309+
assert_success
310+
refute_output
311+
}
312+
313+
#----------------------------------------------------------#
314+
# MAIL #
315+
#----------------------------------------------------------#
316+
317+
@test "MAIL: Add domain" {
318+
run v-add-mail-domain $user $domain
319+
assert_success
320+
refute_output
321+
}
322+
323+
@test "MAIL: Add domain (duplicate)" {
324+
run v-add-mail-domain $user $domain
325+
assert_failure $E_EXISTS
326+
}
327+
328+
@test "MAIL: Add account" {
329+
run v-add-mail-account $user $domain test t3st-p4ssw0rd
330+
assert_success
331+
refute_output
332+
}
333+
334+
@test "MAIL: Add account (duplicate)" {
335+
run v-add-mail-account $user $domain test t3st-p4ssw0rd
336+
assert_failure $E_EXISTS
337+
}
338+
339+
@test "MAIL: Delete account" {
340+
run v-delete-mail-account $user $domain test
341+
assert_success
342+
refute_output
343+
}
344+
345+
@test "MAIL: Delete missing account" {
346+
run v-delete-mail-account $user $domain test
347+
assert_failure $E_NOTEXIST
348+
}
349+
350+
351+
#----------------------------------------------------------#
352+
# DB #
353+
#----------------------------------------------------------#
354+
355+
356+
#----------------------------------------------------------#
357+
# CLEANUP #
358+
#----------------------------------------------------------#
359+
360+
@test "Mail: Delete domain" {
361+
# skip
362+
run v-delete-mail-domain $user $domain
363+
assert_success
364+
refute_output
365+
}
366+
367+
@test "DNS: Delete domain" {
368+
# skip
369+
run v-delete-dns-domain $user $domain
370+
assert_success
371+
refute_output
372+
}
373+
374+
@test "WEB: Delete domain" {
375+
# skip
376+
run v-delete-web-domain $user $domain
377+
assert_success
378+
refute_output
379+
}
380+
381+
@test "Delete user" {
382+
# skip
383+
run v-delete-user $user
384+
assert_success
385+
refute_output
386+
}
387+
388+
@test "Ip: Delete the test IP" {
389+
# skip
390+
run v-delete-sys-ip 198.18.0.125
391+
assert_success
392+
refute_output
393+
}
394+
395+
@test 'assert()' {
396+
touch '/var/log/test.log'
397+
assert [ -e '/var/log/test.log' ]
398+
}

0 commit comments

Comments
 (0)