fix change_url tests

This commit is contained in:
Kay0u 2020-12-22 21:42:54 +01:00
parent e8d9b50e5d
commit 612d531e41
No known key found for this signature in database
GPG key ID: AAFEEB16CFA2AE2D
2 changed files with 43 additions and 11 deletions

View file

@ -534,8 +534,11 @@ TEST_CHANGE_URL () {
at_least_one_install_succeeded || return 1
this_is_a_web_app || return 0
local current_domain=$SUBDOMAIN
local current_path="$(default_install_path)"
log_small_title "Preliminary install..." \
&& _LOAD_SNAPSHOT_OR_INSTALL_APP "/"
&& _LOAD_SNAPSHOT_OR_INSTALL_APP "$current_path"
local ret=$?
[ $ret -eq 0 ] || { return 1; }
@ -577,13 +580,24 @@ TEST_CHANGE_URL () {
local new_domain=$DOMAIN
fi
log_small_title "Changing the url to $new_domain$new_path..." \
if [ "$new_path" == "$current_path" ] && [ "$new_domain" == "$current_domain" ]; then
continue
elif ! there_is_a_root_install_test && [ "$new_path" == "/" ]; then
continue
elif ! there_is_a_subdir_install_test && [ "$new_path" != "/" ]; then
continue
fi
log_small_title "Changing the url from $current_domain$current_path to $new_domain$new_path..." \
&& _RUN_YUNOHOST_CMD "app change-url $app_id -d $new_domain -p $new_path" \
&& _VALIDATE_THAT_APP_CAN_BE_ACCESSED $new_domain $new_path
local ret=$?
[ $ret -eq 0 ] || { return 1; }
current_domain=$new_domain
current_path=$new_path
break_before_continue
done

View file

@ -378,22 +378,40 @@ start_test () {
current_test_number=$((current_test_number+1))
}
this_is_a_web_app () {
there_is_an_install_type() {
local install_type=$1
# Usually the fact that we test "nourl"
# installs should be a good indicator for the fact that it's not a webapp
for TEST in $(ls $TEST_CONTEXT/tests/*.json)
for TEST in $TEST_CONTEXT/tests/*.json
do
jq -e '. | select(.test_type == "TEST_INSTALL") | select(.test_arg == "nourl")' $TEST > /dev/null \
&& return 1
jq --arg install_type "$install_type" -e '. | select(.test_type == "TEST_INSTALL") | select(.test_arg == $install_type)' $TEST > /dev/null \
&& return 0
done
return 0
return 1
}
there_is_a_root_install_test() {
return $(there_is_an_install_type "root")
}
there_is_a_subdir_install_test() {
return $(there_is_an_install_type "subdir")
}
this_is_a_web_app () {
# An app is considered to be a webapp if there is a root or a subdir test
return $(there_is_a_root_install_test) || $(there_is_a_subdir_install_test)
}
default_install_path() {
# All webapps should be installable at the root of a domain ?
this_is_a_web_app && echo "/" || echo ""
# All webapps should be installable at the root or in a subpath of a domain
if there_is_a_root_install_test; then
echo "/"
elif there_is_a_subdir_install_test; then
echo "/path"
else
echo ""
fi
}
path_to_install_type() {