dotfiles/.zsh/zsh-you-should-use/tests/test_you_should_use.zunit

108 lines
3.2 KiB
Plaintext
Raw Permalink Normal View History

2024-09-22 19:14:22 +03:00
#!/usr/bin/env zunit
@setup {
load "../you-should-use.plugin.zsh"
unset YSU_MESSAGE_POSITION
}
@test 'ysu version exported' {
git_version="$(git tag --list | sort | tail -1)"
git tag --list
assert "$YSU_VERSION" is_not_empty
assert "$YSU_VERSION" same_as "$git_version"
}
@test 'ysu preexec functions are loaded by default' {
assert '_check_aliases' in $preexec_functions
assert '_check_git_aliases' in $preexec_functions
assert '_check_global_aliases' in $preexec_functions
assert '_flush_ysu_buffer' in $precmd_functions
}
@test 'ysu disable/enable functions' {
disable_you_should_use
assert '_check_aliases' not_in $preexec_functions
assert '_check_git_aliases' not_in $preexec_functions
assert '_check_global_aliases' not_in $preexec_functions
assert '_flush_ysu_buffer' not_in $precmd_functions
enable_you_should_use
assert '_check_aliases' in $preexec_functions
assert '_check_git_aliases' in $preexec_functions
assert '_check_global_aliases' in $preexec_functions
assert '_flush_ysu_buffer' in $precmd_functions
}
@test 'ysu message correct output' {
unset YSU_MESSAGE_FORMAT
run ysu_message "alias" "ls -l" "ll"
assert $state equals 0
expected="$(tput bold)$(tput setaf 3)Found existing alias for $(tput setaf 5)\"ls -l\"$(tput setaf 3). "
expected+="You should use: $(tput setaf 5)\"ll\"$(tput sgr0)"
assert "$output" same_as "$expected"
}
@test 'ysu message correct output 2' {
unset YSU_MESSAGE_FORMAT
run ysu_message "foobar" "2>/dev/null" "NE"
assert $state equals 0
expected="$(tput bold)$(tput setaf 3)Found existing foobar for $(tput setaf 5)\"2>/dev/null\"$(tput setaf 3). "
expected+="You should use: $(tput setaf 5)\"NE\"$(tput sgr0)"
assert "$output" same_as "$expected"
}
@test 'escapes \ and % correctly' {
unset YSU_MESSAGE_FORMAT
run ysu_message "alias" "printf '%s\\n'" "pf"
assert $state equals 0
expected="$(tput bold)$(tput setaf 3)Found existing alias for $(tput setaf 5)\"printf '%s\\n'\"$(tput setaf 3). "
expected+="You should use: $(tput setaf 5)\"pf\"$(tput sgr0)"
assert "$output" same_as "$expected"
}
@test 'ysu - _write_ysu_buffer after' {
unset YSU_MESSAGE_FORMAT
YSU_MESSAGE_POSITION="after"
_YSU_BUFFER=""
_write_ysu_buffer "hello world"
assert $state equals 0
assert "$output" is_empty
assert "$_YSU_BUFFER" same_as "hello world"
}
@test 'ysu message - custom message' {
export YSU_MESSAGE_FORMAT="Hi there %alias_type! %command <=> %alias"
run ysu_message "git alias" "tig" "t"
assert $state equals 0
assert "$output" same_as "Hi there git alias! tig <=> t"
}
@test 'ysu message - custom message 2' {
export YSU_MESSAGE_FORMAT="%alias is a %alias_type for %command"
run ysu_message "alias" "xdg-open" "xopen"
assert $state equals 0
assert "$output" same_as "xopen is a alias for xdg-open"
}
@test 'ysu message - custom message multiple usages' {
export YSU_MESSAGE_FORMAT="%alias %alias %command %command %alias_type %alias_type"
run ysu_message 'git alias' 'xpaste' 'xp'
assert $state equals 0
assert "$output" same_as "xp xp xpaste xpaste git alias git alias"
}