127 lines
3.6 KiB
Bash
Executable File
127 lines
3.6 KiB
Bash
Executable File
#!/usr/bin/env zsh
|
|
|
|
# Required for shunit2 to run correctly
|
|
setopt shwordsplit
|
|
SHUNIT_PARENT=$0
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# SHUNIT2 HOOKS
|
|
# ------------------------------------------------------------------------------
|
|
|
|
oneTimeSetUp() {
|
|
export TERM="xterm-256color"
|
|
|
|
SPACESHIP_PROMPT_ADD_NEWLINE=false
|
|
SPACESHIP_PROMPT_FIRST_PREFIX_SHOW=true
|
|
SPACESHIP_PROMPT_ORDER=(user)
|
|
|
|
source "spaceship.zsh"
|
|
}
|
|
|
|
setUp() {
|
|
SPACESHIP_USER_SHOW=true
|
|
SPACESHIP_USER_PREFIX="with "
|
|
SPACESHIP_USER_SUFFIX="$SPACESHIP_PROMPT_DEFAULT_SUFFIX"
|
|
SPACESHIP_USER_COLOR="yellow"
|
|
SPACESHIP_USER_COLOR_ROOT="red"
|
|
}
|
|
|
|
oneTimeTearDown() {
|
|
unset SPACESHIP_PROMPT_FIRST_PREFIX_SHOW
|
|
unset SPACESHIP_PROMPT_ADD_NEWLINE
|
|
unset SPACESHIP_PROMPT_ORDER
|
|
}
|
|
|
|
tearDown() {
|
|
unset SPACESHIP_USER_SHOW
|
|
unset SPACESHIP_USER_PREFIX
|
|
unset SPACESHIP_USER_SUFFIX
|
|
unset SPACESHIP_USER_COLOR
|
|
unset SPACESHIP_USER_COLOR_ROOT
|
|
}
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# TEST CASES
|
|
# ------------------------------------------------------------------------------
|
|
|
|
test_user() {
|
|
local _user_="$USER"
|
|
USER='tests'
|
|
|
|
local expected="%{%B%}with %{%b%}%{%B%F{yellow}%}%n%{%b%f%}%{%B%} %{%b%}"
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
|
|
assertEquals "render user when needed" "$expected" "$actual"
|
|
|
|
USER=$_user_
|
|
}
|
|
|
|
test_user_show() {
|
|
local expected="%{%B%}with %{%b%}%{%B%F{yellow}%}%n%{%b%f%}%{%B%} %{%b%}"
|
|
|
|
SPACESHIP_USER_SHOW=true
|
|
SSH_CONNECTION=''
|
|
assertEquals "SHOW=true, SSH=false" "" "$(spaceship::testkit::render_prompt)"
|
|
SSH_CONNECTION='ssh'
|
|
assertEquals "SHOW=true, SSH=true" "$expected" "$(spaceship::testkit::render_prompt)"
|
|
|
|
SPACESHIP_USER_SHOW=always
|
|
SSH_CONNECTION=''
|
|
assertEquals "SHOW=always, SSH=false" "$expected" "$(spaceship::testkit::render_prompt)"
|
|
SSH_CONNECTION='ssh'
|
|
assertEquals "SHOW=always, SSH=true" "$expected" "$(spaceship::testkit::render_prompt)"
|
|
|
|
SPACESHIP_USER_SHOW=false
|
|
SSH_CONNECTION=''
|
|
assertEquals "SHOW=false, SSH=false" "" "$(spaceship::testkit::render_prompt)"
|
|
SSH_CONNECTION='ssh'
|
|
assertEquals "SHOW=false, SSH=true" "" "$(spaceship::testkit::render_prompt)"
|
|
|
|
SPACESHIP_USER_SHOW=needed
|
|
SSH_CONNECTION=''
|
|
assertEquals "SHOW=needed, SSH=false" "" "$(spaceship::testkit::render_prompt)"
|
|
SSH_CONNECTION='ssh'
|
|
assertEquals "SHOW=needed, SSH=true" "" "$(spaceship::testkit::render_prompt)"
|
|
|
|
unset SSH_CONNECTION
|
|
}
|
|
|
|
test_user_color() {
|
|
SPACESHIP_USER_SHOW=always # force user display
|
|
SPACESHIP_USER_COLOR=green
|
|
|
|
local expected="%{%B%}with %{%b%}%{%B%F{$SPACESHIP_USER_COLOR}%}%n%{%b%f%}%{%B%} %{%b%}"
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
|
|
assertEquals "render user with custom color" "$expected" "$actual"
|
|
}
|
|
|
|
test_user_prefix() {
|
|
SPACESHIP_USER_SHOW=always # force user display
|
|
SPACESHIP_USER_PREFIX='prefix'
|
|
SPACESHIP_USER_SUFFIX=''
|
|
|
|
local expected="%{%B%}$SPACESHIP_USER_PREFIX%{%b%}%{%B%F{yellow}%}%n%{%b%f%}"
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
|
|
assertEquals "render user with prefix" "$expected" "$actual"
|
|
}
|
|
|
|
test_user_suffix() {
|
|
SPACESHIP_USER_SHOW=always # force user display
|
|
SPACESHIP_USER_PREFIX=''
|
|
SPACESHIP_USER_SUFFIX='suffix'
|
|
|
|
local expected="%{%B%F{yellow}%}%n%{%b%f%}%{%B%}$SPACESHIP_USER_SUFFIX%{%b%}"
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
|
|
assertEquals "render user with suffix" "$expected" "$actual"
|
|
}
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# SHUNIT2
|
|
# Run tests with shunit2
|
|
# ------------------------------------------------------------------------------
|
|
|
|
source tests/shunit2/shunit2
|