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

171 lines
4.4 KiB
Plaintext
Raw Normal View History

2024-09-22 19:14:22 +03:00
#!/usr/bin/env zunit
@setup {
load "../you-should-use.plugin.zsh"
# Simplify format for tests
YSU_MESSAGE_FORMAT='Found existing %alias_type for "%command". You should use: "%alias"'
unset YSU_MESSAGE_POSITION
}
@teardown {
}
@test 'aliases no match' {
export YSU_MODE="ALL"
alias ls="less -R"
run _check_aliases "less"
assert "$output" is_empty
assert $state equals 0
}
@test 'aliases longer or the same length as their commands are ignored' {
export YSU_MODE="ALL"
alias longalias='ls -lA'
alias ls_-lA='ls -lA'
run _check_aliases "ls -lA"
assert "$output" is_empty
assert $state equals 0
}
@test 'aliases match - all with alphabetical ordering' {
export YSU_MODE="ALL"
alias c="git status -v"
alias a="git status"
alias b="git"
run _check_aliases "git status -v"
assert $lines[1] contains 'Found existing alias for "git status". You should use: "a"'
assert $lines[2] contains 'Found existing alias for "git". You should use: "b"'
assert $lines[3] contains 'Found existing alias for "git status -v". You should use: "c"'
assert $state equals 0
}
@test 'aliases bestmatch default' {
unset YSU_MODE
alias gs="git status"
alias g="git"
run _check_aliases "git status -v"
assert "$output" contains 'Found existing alias for "git status". You should use: "gs"'
assert $state equals 0
}
@test 'aliases bestmatch - chooses longest matching alias value' {
export YSU_MODE="BESTMATCH"
alias gs="git status"
alias g="git"
alias gsv="git status -v"
run _check_aliases "git status -v"
assert "$output" contains 'Found existing alias for "git status -v". You should use: "gsv"'
assert $state equals 0
}
@test 'aliases bestmatch - chooses longest matching alias value case 2' {
export YSU_MODE="BESTMATCH"
alias gco="git checkout"
alias gcom="git checkout master"
run _check_aliases "git checkout master"
assert "$output" contains 'Found existing alias for "git checkout master". You should use: "gcom"'
assert $state equals 0
}
@test 'aliases bestmatch - chooses shortest alias key on equal value lengths' {
export YSU_MODE="BESTMATCH"
alias v="vim"
alias nvim="vim"
run _check_aliases "vim"
assert "$output" contains 'Found existing alias for "vim". You should use: "v"'
assert $state equals 0
}
@test 'aliases ignore if sudo' {
unset YSU_MODE
alias gs="git status"
run _check_aliases "sudo git status -v"
assert "$output" is_empty
assert $state equals 0
}
@test 'aliases exact match' {
export YSU_MODE="ALL"
alias hu='hg update'
run _check_aliases 'hg update'
assert "$output" contains 'Found existing alias for "hg update". You should use: "hu"'
assert $state equals 0
}
@test 'aliases substring match' {
export YSU_MODE="ALL"
alias hu='hg update'
run _check_aliases 'hg update -all'
assert "$output" contains 'Found existing alias for "hg update". You should use: "hu"'
assert $state equals 0
}
@test 'aliases ignores - does not report an ignored alias' {
export YSU_MODE="ALL"
export YSU_IGNORED_ALIASES=("something" "e" "else")
alias e="echo"
alias l="ls"
run _check_aliases "echo hello"
assert $output is_empty
assert $state equals 0
}
@test 'aliases ignores only - only ignores specified aliases' {
export YSU_MODE="ALL"
export YSU_IGNORED_ALIASES=("something" "else")
alias e="echo"
alias l="ls"
run _check_aliases "echo hello"
assert $output contains 'Found existing alias for "echo"'
assert $state equals 0
}
@test 'dont display recommendations for an alias if it is used' {
alias hu='hg update'
run _check_aliases 'hu' 'hg update'
assert "$output" is_empty
assert $state equals 0
}
@test 'dont display recommendations for an alias if it is used - 2' {
alias eh='echo hello'
run _check_aliases 'eh world' 'echo hello world'
assert "$output" is_empty
assert $state equals 0
}
@test 'dont display recommendations for an alias if it is used - 4' {
alias ..='cd ..'
alias cd..='cd ..'
run _check_aliases '..' 'cd ..'
assert "$output" is_empty
assert $state equals 0
}
@test 'dont display recommendations for an alias if it is used - 3' {
alias ls='ls --color=auto'
alias ll='ls -lh --group-directories-first'
run _check_aliases 'll' 'ls --color=auto -lh --group-directories-first'
assert "$output" is_empty
assert $state equals 0
}