Skip to content

Commit b7f2316

Browse files
authored
Bats testing for Letsencrypt domain (hestiacp#2280)
* Allow when LE_STAGING is enabled to renew without delay * Add lets encrypt tests * Update drone.yalm * Fix duplicate name * Fix issue with source * Fix DNS issue * test * Update v-list-dns-record query * Adjust check * Add check * Add new test for delete web domain ssl
1 parent f506316 commit b7f2316

File tree

3 files changed

+92
-2
lines changed

3 files changed

+92
-2
lines changed

.drone.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ steps:
7676
- name: Run restore tests
7777
commands:
7878
- bats ./test/restore.bats
79+
- name: Run Letsencrypt test against Staging
80+
commands:
81+
- cp /root/le-env.sh /tmp/hestia-le-env.sh
82+
- bats ./test/letsencrypt.bats
7983
- name: Run config tests
8084
commands:
8185
- bats ./test/config-tests.bats
@@ -105,4 +109,4 @@ trigger:
105109

106110
---
107111
kind: signature
108-
hmac: 48d34d11001c99b470114f50c4284fa107a5e61ad08ada38307493b9e9b2883f
112+
hmac: da6a96c077ec55ccfb27ec8a3250eeb0700153078adf088dc70998b2cd033b28

bin/v-update-letsencrypt-ssl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ check_hestia_demo_mode
3030
# Set LE counter
3131
lecounter=0
3232
max_LE_failures=30
33+
days_valid_setting=31
34+
if [ "$LE_STAGING" = "yes" ]; then
35+
# Overwrite setting to allow testing for renewal to be done easier
36+
days_valid_setting=181
37+
fi
3338

3439
# Checking user certificates
3540
for user in $($HESTIA/bin/v-list-sys-users plain); do
@@ -53,7 +58,7 @@ for user in $($HESTIA/bin/v-list-sys-users plain); do
5358
now=$(date +%s)
5459
seconds_valid=$((expiration - now))
5560
days_valid=$((seconds_valid / 86400))
56-
if [[ "$days_valid" -lt 31 ]]; then
61+
if [[ "$days_valid" -lt "$days_valid_setting" ]]; then
5762
if [ $lecounter -gt 0 ]; then
5863
sleep 10
5964
fi

test/letsencrypt.bats

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#!/usr/bin/env bats
2+
3+
if [ "${PATH#*/usr/local/hestia/bin*}" = "$PATH" ]; then
4+
. /etc/profile.d/hestia.sh
5+
fi
6+
7+
load 'test_helper/bats-support/load'
8+
load 'test_helper/bats-assert/load'
9+
load 'test_helper/bats-file/load'
10+
11+
12+
function random() {
13+
head /dev/urandom | tr -dc 0-9 | head -c$1
14+
}
15+
16+
function setup() {
17+
source /tmp/hestia-le-env.sh
18+
source $HESTIA/func/main.sh
19+
source $HESTIA/conf/hestia.conf
20+
source $HESTIA/func/ip.sh
21+
}
22+
23+
@test "Create new user" {
24+
run v-add-user $user $user $user@hestiacp.com default "Super Test"
25+
assert_success
26+
refute_output
27+
}
28+
29+
@test "Create DNS domain" {
30+
run v-add-dns-domain $user $domain $ip
31+
assert_success
32+
refute_output
33+
}
34+
35+
@test "Create web domain" {
36+
run v-add-web-domain $user $domain $ip yes "www.$domain,renewal.$domain"
37+
assert_success
38+
refute_output
39+
}
40+
41+
@test "Request new certificate for web domain" {
42+
run v-add-letsencrypt-domain $user $domain "www.$domain,renewal.$domain"
43+
assert_success
44+
refute_output
45+
}
46+
47+
@test "Create mail domain" {
48+
run v-add-mail-domain $user $domain
49+
assert_success
50+
refute_output
51+
}
52+
53+
@test "Request new Certificate for Mail Domain" {
54+
run v-add-letsencrypt-domain $user $domain "" "yes"
55+
assert_success
56+
refute_output
57+
}
58+
59+
@test "Run renewal script for LE" {
60+
run v-update-letsencrypt-ssl
61+
assert_success
62+
refute_output
63+
}
64+
65+
@test Delete mail ssl" {
66+
v-delete-letsencrypt-domain $user $domain "yes" "yes"
67+
assert_success
68+
refute_output
69+
}
70+
71+
@test Delete web ssl" {
72+
v-delete-letsencrypt-domain $user $domain "yes" "no"
73+
assert_success
74+
refute_output
75+
}
76+
77+
@test "Delete user" {
78+
run v-delete-user $user
79+
assert_success
80+
refute_output
81+
}

0 commit comments

Comments
 (0)