# # Deployer unit tests using BATS framework. # bats_require_minimum_version 1.5.0 setup() { # shellcheck source=./tests/tests.conf source "${PWD}/tests/tests.conf" make build >/dev/null DESTDIR="${temp}" make install >/dev/null install --no-target-directory \ "${PWD}/tests/tests.conf" \ "${temp}${sysconf_dir}/${name}/${name}.conf" install --directory "${temp}${var_dir}/${name}/repositories/test.git" install --directory "${temp}${var_dir}/${name}/RPMS" # shellcheck source=./conf/errors.conf.sample source "${errs_file}" } teardown() { rm --recursive --force "${temp}" make clean >/dev/null } run_with_bad_arguments() { #@test run -1 "${deployer_bin}" -z test run -1 "${deployer_bin}" --zzz test run -1 "${deployer_bin}" zzz run -1 "${deployer_bin}" --conf run -1 "${deployer_bin}" --conf=/path/to/nowhere test run -1 "${deployer_bin}" --errs run -1 "${deployer_bin}" --errs=/path/to/nowhere test run -1 "${deployer_bin}" --verbose --quiet test } run_without_loop() { #@test "${deployer_bin}" --conf="${conf_file}" --errs="${errs_file}" --verbose test } send_request() ( request="$1" "${deployer_bin}" --conf="${conf_file}" --errs="${errs_file}" \ --once --daemon --verbose start || return $? ( inotifywait --timeout 1 --quiet --quiet \ --event create "${response_sock_dir}" || true echo "${request}" | ncat --unixsock "${deployer_sock}" ) & code="$(ncat --listen --unixsock "${response_sock}" | jq .code)" "${deployer_bin}" --conf="${conf_file}" --errs="${errs_file}" stop return "${code}" ) run_with_err_pkg_name_missing() { #@test request="$(jq --null-input --compact-output \ --arg s "${response_sock}" \ '{"response_sock":$s}')" run send_request "${request}" echo "status: got ${status:?}, expected ${err_pkg_name_missing}" [ "${status}" -eq "${err_pkg_name_missing}" ] } run_with_err_pkg_name_empty() { #@test request="$(jq --null-input --compact-output \ --arg s "${response_sock}" \ '{"response_sock":$s,"pkg_name":""}')" run send_request "${request}" echo "status: got ${status:?}, expected ${err_pkg_name_empty}" [ "${status}" -eq "${err_pkg_name_empty}" ] } run_with_err_repo_dir_not_exist() { #@test request="$(jq --null-input --compact-output \ --arg s "${response_sock}" \ '{"response_sock":$s,"pkg_name":"not_exist"}')" run send_request "${request}" echo "status: got ${status:?}, expected ${err_repo_dir_not_exist}" [ "${status}" -eq "${err_repo_dir_not_exist}" ] } run_with_err_pkg_version_missing() { #@test request="$(jq --null-input --compact-output \ --arg s "${response_sock}" \ '{"response_sock":$s,"pkg_name":"test"}')" run send_request "${request}" echo "status: got ${status:?}, expected ${err_pkg_version_missing}" [ "${status}" -eq "${err_pkg_version_missing}" ] } run_with_err_pkg_version_empty() { #@test request="$(jq --null-input --compact-output \ --arg s "${response_sock}" \ '{"response_sock":$s,"pkg_name":"test","pkg_version":""}')" run send_request "${request}" echo "status: got ${status:?}, expected ${err_pkg_version_empty}" [ "${status}" -eq "${err_pkg_version_empty}" ] } run_with_err_rpm_path_not_exist() { #@test request="$(jq --null-input --compact-output \ --arg s "${response_sock}" \ '{"response_sock":$s,"pkg_name":"test","pkg_version":"0.1"}')" run send_request "${request}" echo "status: got ${status:?}, expected ${err_rpm_path_not_exist}" [ "${status}" -eq "${err_rpm_path_not_exist}" ] }