dotfiles/.bash_it/test/plugins/base.plugin.bats
2022-02-27 20:00:49 +01:00

76 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bats
load ../test_helper
load "${BASH_IT}/vendor/github.com/erichs/composure/composure.sh"
load ../../plugins/available/base.plugin
@test 'plugins base: ips()' {
if [[ $CI ]]; then
skip 'ifconfig probably requires sudo on TravisCI'
fi
declare -r localhost='127.0.0.1'
run ips
assert_success
assert_line $localhost
}
@test 'plugins base: myip()' {
run myip
assert_success
declare -r mask_ip=$(echo $output | tr -s '[0-9]' '?')
[[ $mask_ip == 'Your public IP is: ?.?.?.?' ]]
}
@test 'plugins base: pickfrom()' {
stub_file="${BASH_IT_ROOT}/stub_file"
printf "l1\nl2\nl3" > $stub_file
run pickfrom $stub_file
assert_success
[[ $output == l? ]]
}
@test 'plugins base: mkcd()' {
cd "${BASH_IT_ROOT}"
declare -r dir_name="-dir_with_dash"
# Make sure that the directory does not exist prior to the test
rm -rf "${BASH_IT_ROOT}/${dir_name}"
mkcd "${dir_name}"
assert_success
assert_dir_exist "${BASH_IT_ROOT}/${dir_name}"
assert_equal $(pwd) "${BASH_IT_ROOT}/${dir_name}"
}
@test 'plugins base: lsgrep()' {
for i in 1 2 3; do mkdir -p "${BASH_IT_TEST_DIR}/${i}"; done
cd $BASH_IT_TEST_DIR
run lsgrep 2
assert_success
assert_equal $output 2
}
@test 'plugins base: buf()' {
declare -r file="${BASH_IT_ROOT}/file"
touch $file
# Take one timestamp before running the `buf` function
declare -r stamp1=$(date +%Y%m%d_%H%M%S)
run buf $file
# Take another timestamp after running `buf`.
declare -r stamp2=$(date +%Y%m%d_%H%M%S)
# Verify that the backup file ends with one of the two timestamps.
# This is done to avoid race conditions where buf is run close to the end
# of a second, in which case the second timestamp might be in the next second,
# causing the test to fail.
# By using `or` for the two checks, we can verify that one of the two files is present.
# In most cases, it's going to have the same timestamp anyway.
# We can't use `assert_file_exist` here, since it only checks for a single file name.
assert [ -e "${file}_${stamp1}" \
-o -e "${file}_${stamp2}" ]
}