configs/home/.zsh-distrobox/themes/spaceship-prompt/tests/perl.test.zsh

87 lines
2.4 KiB
Bash

#!/usr/bin/env zsh
# Required for shunit2 to run correctly
setopt shwordsplit
SHUNIT_PARENT=$0
# ------------------------------------------------------------------------------
# SHUNIT2 HOOKS
# ------------------------------------------------------------------------------
oneTimeSetUp() {
export TERM="xterm-256color"
export PATH=$PWD/tests/stubs:$PATH
PERL_VERSION="5.30.3"
SPACESHIP_PROMPT_ASYNC=false
SPACESHIP_PROMPT_FIRST_PREFIX_SHOW=true
SPACESHIP_PROMPT_ADD_NEWLINE=false
SPACESHIP_PROMPT_ORDER=(perl)
source "spaceship.zsh"
}
setUp() {
SPACESHIP_PERL_SHOW="true"
SPACESHIP_PERL_PREFIX="via "
SPACESHIP_PERL_SUFFIX=""
SPACESHIP_PERL_SYMBOL="🐪 "
SPACESHIP_PERL_COLOR="blue"
cd $SHUNIT_TMPDIR
}
oneTimeTearDown() {
unset SPACESHIP_PROMPT_FIRST_PREFIX_SHOW
unset SPACESHIP_PROMPT_ADD_NEWLINE
unset SPACESHIP_PROMPT_ORDER
}
tearDown() {
unset SPACESHIP_PERL_SHOW
unset SPACESHIP_PERL_PREFIX
unset SPACESHIP_PERL_SUFFIX
unset SPACESHIP_PERL_SYMBOL
unset SPACESHIP_PERL_COLOR
}
# ------------------------------------------------------------------------------
# TEST CASES
# ------------------------------------------------------------------------------
test_no_files() {
local expected=""
local actual="$(spaceship::testkit::render_prompt)"
assertEquals "should not render without files" "$expected" "$actual"
}
test_perl_upsearch_file() {
FILES=(META.json META.yml META.yaml .perl-version cpanfile)
for file in $FILES; do
touch $file
local expected="%{%B%}$SPACESHIP_PERL_PREFIX%{%b%}%{%B%F{$SPACESHIP_PERL_COLOR}%}${SPACESHIP_PERL_SYMBOL}v$PERL_VERSION%{%b$SPACESHIP_PERL_SUFFIX%f%}"
local actual="$(spaceship::testkit::render_prompt)"
assertEquals "should render with $file" "$expected" "$actual"
rm $file
done
}
test_perl_file_extension() {
FILES=(first.pl second.pm)
for file in $FILES; do
touch $file
local expected="%{%B%}$SPACESHIP_PERL_PREFIX%{%b%}%{%B%F{$SPACESHIP_PERL_COLOR}%}${SPACESHIP_PERL_SYMBOL}v$PERL_VERSION%{%b$SPACESHIP_PERL_SUFFIX%f%}"
local actual="$(spaceship::testkit::render_prompt)"
assertEquals "should render with $file" "$expected" "$actual"
rm $file
done
}
# ------------------------------------------------------------------------------
# SHUNIT2
# Run tests with shunit2
# ------------------------------------------------------------------------------
source tests/shunit2/shunit2