122 lines
3.6 KiB
Bash
122 lines
3.6 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
|
|
|
|
DART_VERSION="2.19.0"
|
|
|
|
SPACESHIP_PROMPT_ASYNC=false
|
|
SPACESHIP_PROMPT_FIRST_PREFIX_SHOW=true
|
|
SPACESHIP_PROMPT_ADD_NEWLINE=false
|
|
SPACESHIP_PROMPT_ORDER=(dart)
|
|
|
|
source "spaceship.zsh"
|
|
}
|
|
|
|
setUp() {
|
|
SPACESHIP_DART_SHOW="true"
|
|
SPACESHIP_DART_PREFIX="via "
|
|
SPACESHIP_DART_SUFFIX=""
|
|
SPACESHIP_DART_SYMBOL="🎯 "
|
|
SPACESHIP_DART_COLOR="blue"
|
|
|
|
cd $SHUNIT_TMPDIR
|
|
}
|
|
|
|
oneTimeTearDown() {
|
|
unset SPACESHIP_PROMPT_FIRST_PREFIX_SHOW
|
|
unset SPACESHIP_PROMPT_ADD_NEWLINE
|
|
unset SPACESHIP_PROMPT_ORDER
|
|
}
|
|
|
|
tearDown() {
|
|
unset SPACESHIP_DART_SHOW
|
|
unset SPACESHIP_DART_PREFIX
|
|
unset SPACESHIP_DART_SUFFIX
|
|
unset SPACESHIP_DART_SYMBOL
|
|
unset SPACESHIP_DART_COLOR
|
|
}
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# TEST CASES
|
|
# ------------------------------------------------------------------------------
|
|
|
|
test_no_files() {
|
|
local expected=""
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
assertEquals "should not render without files" "$expected" "$actual"
|
|
}
|
|
|
|
test_dart_upsearch_file() {
|
|
FILES=(pubspec.yaml pubspec.yml pubspec.lock)
|
|
for file in $FILES; do
|
|
touch $file
|
|
local expected="%{%B%}via %{%b%}%{%B%F{$SPACESHIP_DART_COLOR}%}${SPACESHIP_DART_SYMBOL}v$DART_VERSION%{%b%f%}"
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
assertEquals "should render with $file" "$expected" "$actual"
|
|
rm $file
|
|
done
|
|
}
|
|
|
|
test_dart_upsearch_dir() {
|
|
DIRS=(dart_tool)
|
|
for dir in $DIRS; do
|
|
mkdir $dir
|
|
local expected="%{%B%}via %{%b%}%{%B%F{$SPACESHIP_DART_COLOR}%}${SPACESHIP_DART_SYMBOL}v$DART_VERSION%{%b%f%}"
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
assertEquals "should render with $dir" "$expected" "$actual"
|
|
rm -rf $dir
|
|
done
|
|
}
|
|
|
|
test_dart_file_extension() {
|
|
FILES=(first.dart second.dart)
|
|
for file in $FILES; do
|
|
touch $file
|
|
local expected="%{%B%}via %{%b%}%{%B%F{$SPACESHIP_DART_COLOR}%}${SPACESHIP_DART_SYMBOL}v$DART_VERSION%{%b%f%}"
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
assertEquals "should render with $file" "$expected" "$actual"
|
|
rm $file
|
|
done
|
|
}
|
|
|
|
test_dart_flutter() {
|
|
# alias to mock dart command bundled with flutter
|
|
alias "dart"="printf 'Dart SDK version: 2.18.1 (stable) (Tue Sep 13 11:42:55 2022 +0200) on \"macos_x64\"'\n"
|
|
local DART_VERSION="2.18.1"
|
|
file="main.dart"
|
|
touch $file
|
|
local expected="%{%B%}via %{%b%}%{%B%F{$SPACESHIP_DART_COLOR}%}${SPACESHIP_DART_SYMBOL}v$DART_VERSION%{%b%f%}"
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
assertEquals "should render with $file" "$expected" "$actual"
|
|
rm $file
|
|
}
|
|
|
|
test_dart_sdk() {
|
|
# alias to mock dart command installed as dart-sdk
|
|
alias "dart"="printf 'Dart SDK version: 2.19.0-edge.efb509c114dcaf54d0a011f717b48893d71ec9c3 (be) (Thu Sep 29 01:58:56 2022 +0000) on \"macos_x64\"'\n"
|
|
local DART_VERSION="2.19.0"
|
|
file="main.dart"
|
|
touch $file
|
|
local expected="%{%B%}via %{%b%}%{%B%F{$SPACESHIP_DART_COLOR}%}${SPACESHIP_DART_SYMBOL}v$DART_VERSION%{%b%f%}"
|
|
local actual="$(spaceship::testkit::render_prompt)"
|
|
assertEquals "should render with $file" "$expected" "$actual"
|
|
rm $file
|
|
}
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# SHUNIT2
|
|
# Run tests with shunit2
|
|
# ------------------------------------------------------------------------------
|
|
|
|
source tests/shunit2/shunit2
|