configs/home/.zsh/themes/spaceship-prompt/tests/hooks.test.zsh

74 lines
2.0 KiB
Bash
Raw Permalink Normal View History

2022-12-01 13:28:20 +01:00
#!/usr/bin/env zsh
# Required for shunit2 to run correctly
setopt shwordsplit
SHUNIT_PARENT=$0
# ------------------------------------------------------------------------------
# SHUNIT2 HOOKS
# ------------------------------------------------------------------------------
oneTimeSetUp() {
export TERM="xterm-256color"
source "lib/hooks.zsh"
}
setUp() {
SPACESHIP_EXEC_TIME_SHOW=true
SPACESHIP_GIT_BRANCH_SHOW=true
}
tearDown() {
unset SPACESHIP_EXEC_TIME_SHOW
unset SPACESHIP_GIT_BRANCH_SHOW
}
# ------------------------------------------------------------------------------
# TEST CASES
# ------------------------------------------------------------------------------
test_exec_time_preexec_hook() {
local EPOCHREALTIME='123456'
local expected="$EPOCHREALTIME"
# Hook call should call `date` and save time to $SPACESHIP_EXEC_TIME_start
spaceship_exec_time_start
assertEquals "should save starting time" "$expected" "$SPACESHIP_EXEC_TIME_start"
unset SPACESHIP_EXEC_TIME_start
SPACESHIP_EXEC_TIME_SHOW=false
spaceship_exec_time_start
assertNull "should not call hook" "$SPACESHIP_EXEC_TIME_start"
}
test_exec_time_precmd_hook() {
local date_start_mock='123'
local date_stop_mock='321'
local date_duration_mock='198'
local EPOCHREALTIME=$date_stop_mock
SPACESHIP_EXEC_TIME_start="$date_start_mock"
spaceship_exec_time_stop
assertEquals "should calculate duration" "$date_duration_mock" "$SPACESHIP_EXEC_TIME_duration"
assertNull "$SPACESHIP_EXEC_TIME_start"
spaceship_exec_time_stop
assertNull "should not calculate without starting time" "$SPACESHIP_EXEC_TIME_duration"
SPACESHIP_EXEC_TIME_SHOW=false
SPACESHIP_EXEC_TIME_start="$date_start_mock"
spaceship_exec_time_stop
assertNull "should not calculate duration" "$SPACESHIP_EXEC_TIME_duration"
}
# ------------------------------------------------------------------------------
# SHUNIT2
# Run tests with shunit2
# ------------------------------------------------------------------------------
source tests/shunit2/shunit2