test/lib: `shellcheck`

pull/2033/head
John D Pell 2022-02-13 16:29:04 -08:00 committed by John D Pell
parent bf811cd38e
commit 49b477ef3f
4 changed files with 272 additions and 211 deletions

View File

@ -4,25 +4,25 @@ load "${MAIN_BASH_IT_DIR?}/test/test_helper.bash"
function local_setup_file() {
setup_libs "colors"
load "${BASH_IT?}/plugins/available/base.plugin.bash"
}
function local_setup() {
# Copy the test fixture to the Bash-it folder
cp -RP "$BASH_IT/test/fixtures/bash_it"/* "$BASH_IT/"
cp -RP "${BASH_IT?}/test/fixtures/bash_it"/* "${BASH_IT?}/"
}
# TODO Create global __is_enabled function
# TODO Create global __get_base_name function
# TODO Create global __get_enabled_name function
@test "bash-it: verify that the test fixture is available" {
assert_file_exist "$BASH_IT/profiles/test-bad-component.bash_it"
assert_file_exist "$BASH_IT/profiles/test-bad-type.bash_it"
assert_file_exist "${BASH_IT?}/profiles/test-bad-component.bash_it"
assert_file_exist "${BASH_IT?}/profiles/test-bad-type.bash_it"
}
@test "helpers: _command_exists function exists" {
run type -a _command_exists &> /dev/null
run type -t _command_exists
assert_success
assert_output "function"
}
@test "helpers: _command_exists function positive test ls" {
@ -41,8 +41,9 @@ function local_setup() {
}
@test "helpers: _binary_exists function exists" {
run type -a _binary_exists &> /dev/null
run type -t _binary_exists
assert_success
assert_output "function"
}
@test "helpers: _binary_exists function positive test ls" {
@ -67,54 +68,54 @@ function local_setup() {
@test "helpers: bash-it help aliases without any aliases enabled" {
run bash-it help aliases
assert_line -n 0 ""
assert_output ""
}
@test "helpers: bash-it help plugins" {
run bash-it help plugins
assert_line -n 1 "base:"
assert_line -n 1 "composure:"
}
@test "helpers: bash-it help list aliases without any aliases enabled" {
run _help-list-aliases "$BASH_IT/aliases/available/ag.aliases.bash"
run _help-list-aliases "${BASH_IT?}/aliases/available/ag.aliases.bash"
assert_line -n 0 "ag:"
}
@test "helpers: bash-it help list aliases with ag aliases enabled" {
ln -s $BASH_IT/aliases/available/ag.aliases.bash $BASH_IT/aliases/enabled/150---ag.aliases.bash
assert_link_exist "$BASH_IT/aliases/enabled/150---ag.aliases.bash"
ln -s "${BASH_IT?}/aliases/available/ag.aliases.bash" "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash"
run _help-list-aliases "$BASH_IT/aliases/enabled/150---ag.aliases.bash"
run _help-list-aliases "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash"
assert_line -n 0 "ag:"
}
@test "helpers: bash-it help list aliases with todo.txt-cli aliases enabled" {
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash
assert_link_exist "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash"
ln -s "${BASH_IT?}/aliases/available/todo.txt-cli.aliases.bash" "${BASH_IT?}/aliases/enabled/150---todo.txt-cli.aliases.bash"
assert_link_exist "${BASH_IT?}/aliases/enabled/150---todo.txt-cli.aliases.bash"
run _help-list-aliases "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash"
run _help-list-aliases "${BASH_IT?}/aliases/enabled/150---todo.txt-cli.aliases.bash"
assert_line -n 0 "todo.txt-cli:"
}
@test "helpers: bash-it help list aliases with docker-compose aliases enabled" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash
assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
ln -s "${BASH_IT?}/aliases/available/docker-compose.aliases.bash" "${BASH_IT?}/aliases/enabled/150---docker-compose.aliases.bash"
assert_link_exist "${BASH_IT?}/aliases/enabled/150---docker-compose.aliases.bash"
run _help-list-aliases "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
run _help-list-aliases "${BASH_IT?}/aliases/enabled/150---docker-compose.aliases.bash"
assert_line -n 0 "docker-compose:"
}
@test "helpers: bash-it help list aliases with ag aliases enabled in global directory" {
ln -s $BASH_IT/aliases/available/ag.aliases.bash $BASH_IT/enabled/150---ag.aliases.bash
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
ln -s "${BASH_IT?}/aliases/available/ag.aliases.bash" "${BASH_IT?}/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
run _help-list-aliases "$BASH_IT/enabled/150---ag.aliases.bash"
run _help-list-aliases "${BASH_IT?}/enabled/150---ag.aliases.bash"
assert_line -n 0 "ag:"
}
@test "helpers: bash-it help aliases one alias enabled in the old directory" {
ln -s $BASH_IT/aliases/available/ag.aliases.bash $BASH_IT/aliases/enabled/150---ag.aliases.bash
assert_link_exist "$BASH_IT/aliases/enabled/150---ag.aliases.bash"
ln -s "${BASH_IT?}/aliases/available/ag.aliases.bash" "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/aliases/enabled/150---ag.aliases.bash"
run bash-it help aliases
assert_line -n 0 "ag:"
@ -123,11 +124,11 @@ function local_setup() {
@test "helpers: bash-it help aliases one alias enabled in global directory" {
run bash-it enable alias "ag"
assert_line -n 0 'ag enabled with priority 150.'
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
run bash-it enable plugin "aws"
assert_line -n 0 'aws enabled with priority 250.'
assert_link_exist "$BASH_IT/enabled/250---aws.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---aws.plugin.bash"
run bash-it help aliases
assert_line -n 0 "ag:"
@ -137,58 +138,58 @@ function local_setup() {
@test "helpers: enable the todo.txt-cli aliases through the bash-it function" {
run bash-it enable alias "todo.txt-cli"
assert_line -n 0 'todo.txt-cli enabled with priority 150.'
assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---todo.txt-cli.aliases.bash"
}
@test "helpers: enable the curl aliases" {
run _enable-alias "curl"
assert_line -n 0 'curl enabled with priority 150.'
assert_link_exist "$BASH_IT/enabled/150---curl.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---curl.aliases.bash"
}
@test "helpers: enable the apm completion through the bash-it function" {
run bash-it enable completion "apm"
assert_line -n 0 'apm enabled with priority 350.'
assert_link_exist "$BASH_IT/enabled/350---apm.completion.bash"
assert_link_exist "${BASH_IT?}/enabled/350---apm.completion.bash"
}
@test "helpers: enable the brew completion" {
run _enable-completion "brew"
assert_line -n 0 'brew enabled with priority 375.'
assert_link_exist "$BASH_IT/enabled/375---brew.completion.bash"
assert_link_exist "${BASH_IT?}/enabled/375---brew.completion.bash"
}
@test "helpers: enable the node plugin" {
run _enable-plugin "node"
assert_line -n 0 'node enabled with priority 250.'
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash" "../plugins/available/node.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---node.plugin.bash" "../plugins/available/node.plugin.bash"
}
@test "helpers: enable the node plugin through the bash-it function" {
run bash-it enable plugin "node"
assert_line -n 0 'node enabled with priority 250.'
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---node.plugin.bash"
}
@test "helpers: enable the node and nvm plugins through the bash-it function" {
run bash-it enable plugin "node" "nvm"
assert_line -n 0 'node enabled with priority 250.'
assert_line -n 1 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---node.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
}
@test "helpers: enable the foo-unkown and nvm plugins through the bash-it function" {
run bash-it enable plugin "foo-unknown" "nvm"
assert_line -n 0 'sorry, foo-unknown does not appear to be an available plugin.'
assert_line -n 1 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
}
@test "helpers: enable the nvm plugin" {
run _enable-plugin "nvm"
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
}
@test "helpers: enable an unknown plugin" {
@ -196,11 +197,11 @@ function local_setup() {
assert_line -n 0 'sorry, unknown-foo does not appear to be an available plugin.'
# Check for both old an new structure
assert [ ! -L "$BASH_IT/plugins/enabled/250---unknown-foo.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/unknown-foo.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/250---unknown-foo.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/unknown-foo.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/250---unknown-foo.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/unknown-foo.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/enabled/250---unknown-foo.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/enabled/unknown-foo.plugin.bash" ]
}
@test "helpers: enable an unknown plugin through the bash-it function" {
@ -209,11 +210,11 @@ function local_setup() {
assert_line -n 0 'sorry, unknown-foo does not appear to be an available plugin.'
# Check for both old an new structure
assert [ ! -L "$BASH_IT/plugins/enabled/250---unknown-foo.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/unknown-foo.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/250---unknown-foo.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/unknown-foo.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/250---unknown-foo.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/unknown-foo.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/enabled/250---unknown-foo.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/enabled/unknown-foo.plugin.bash" ]
}
@test "helpers: disable a plugin that is not enabled" {
@ -224,75 +225,75 @@ function local_setup() {
@test "helpers: enable and disable the nvm plugin" {
run _enable-plugin "nvm"
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ]
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
assert [ ! -L "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash" ]
run _disable-plugin "nvm"
assert_line -n 0 'nvm disabled.'
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/enabled/225---nvm.plugin.bash" ]
}
@test "helpers: disable the nvm plugin if it was enabled with a priority, but in the component-specific directory" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/225---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash"
assert [ ! -L "${BASH_IT?}/enabled/225---nvm.plugin.bash" ]
run _disable-plugin "nvm"
assert_line -n 0 'nvm disabled.'
assert [ ! -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/enabled/225---nvm.plugin.bash" ]
}
@test "helpers: disable the nvm plugin if it was enabled without a priority" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
run _disable-plugin "nvm"
assert_line -n 0 'nvm disabled.'
assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" ]
}
@test "helpers: enable the nvm plugin if it was enabled without a priority" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
run _enable-plugin "nvm"
assert_line -n 0 'nvm is already enabled.'
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert_link_exist "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
assert [ ! -L "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/enabled/225---nvm.plugin.bash" ]
}
@test "helpers: enable the nvm plugin if it was enabled with a priority, but in the component-specific directory" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/225---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash"
run _enable-plugin "nvm"
assert_line -n 0 'nvm is already enabled.'
assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash"
assert [ ! -L "${BASH_IT?}/enabled/225---nvm.plugin.bash" ]
}
@test "helpers: enable the nvm plugin twice" {
run _enable-plugin "nvm"
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
run _enable-plugin "nvm"
assert_line -n 0 'nvm is already enabled.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
}
@test "helpers: profile load command sanity" {
run _bash-it-profile-load "default"
assert_success
assert_link_exist "$BASH_IT/enabled/150---general.aliases.bash"
assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash"
assert_link_exist "$BASH_IT/enabled/800---aliases.completion.bash"
assert_link_exist "$BASH_IT/enabled/350---bash-it.completion.bash"
assert_link_exist "$BASH_IT/enabled/325---system.completion.bash"
assert_link_exist "${BASH_IT?}/enabled/150---general.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/250---base.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/800---aliases.completion.bash"
assert_link_exist "${BASH_IT?}/enabled/350---bash-it.completion.bash"
assert_link_exist "${BASH_IT?}/enabled/325---system.completion.bash"
}
@test "helpers: profile save command sanity" {
@ -303,14 +304,14 @@ function local_setup() {
assert_line -n 1 "Saving completion configuration..."
assert_line -n 2 "Saving aliases configuration..."
assert_line -n 3 "All done!"
assert_file_exist "$BASH_IT/profiles/test.bash_it"
assert_file_exist "${BASH_IT?}/profiles/test.bash_it"
}
@test "helpers: profile save creates valid file with only plugin enabled" {
run _enable-plugin "nvm"
run _bash-it-profile-save "test"
run cat "$BASH_IT/profiles/test.bash_it"
run cat "${BASH_IT?}/profiles/test.bash_it"
assert_line -n 0 "# This file is auto generated by Bash-it. Do not edit manually!"
assert_line -n 1 "# plugins"
assert_line -n 2 "plugins nvm"
@ -320,7 +321,7 @@ function local_setup() {
run _enable-completion "bash-it"
run _bash-it-profile-save "test"
run cat "$BASH_IT/profiles/test.bash_it"
run cat "${BASH_IT?}/profiles/test.bash_it"
assert_line -n 0 "# This file is auto generated by Bash-it. Do not edit manually!"
assert_line -n 1 "# completion"
assert_line -n 2 "completion bash-it"
@ -330,7 +331,7 @@ function local_setup() {
run _enable-alias "general"
run _bash-it-profile-save "test"
run cat "$BASH_IT/profiles/test.bash_it"
run cat "${BASH_IT?}/profiles/test.bash_it"
assert_line -n 0 "# This file is auto generated by Bash-it. Do not edit manually!"
assert_line -n 1 "# aliases"
assert_line -n 2 "aliases general"
@ -338,37 +339,53 @@ function local_setup() {
@test "helpers: profile edge case, empty configuration" {
run _bash-it-profile-save "test"
assert_success
assert_line -n 3 "It seems like no configuration was enabled.."
assert_line -n 4 "Make sure to double check that this is the wanted behavior."
run _enable-alias "general"
assert_success
run _enable-plugin "base"
run _enable-plugin "alias-completion"
assert_success
run _enable-completion "aliases"
assert_success
run _enable-completion "bash-it"
assert_success
run _enable-completion "system"
assert_success
run _bash-it-profile-load "test"
assert_link_not_exist "$BASH_IT/enabled/150---general.aliases.bash"
assert_link_not_exist "$BASH_IT/enabled/250---base.plugin.bash"
assert_link_not_exist "$BASH_IT/enabled/800---aliases.completion.bash"
assert_link_not_exist "$BASH_IT/enabled/350---bash-it.completion.bash"
assert_link_not_exist "$BASH_IT/enabled/325---system.completion.bash"
assert_success
assert_line -n 0 "Trying to parse profile 'test'..."
assert_link_not_exist "${BASH_IT?}/enabled/150---general.aliases.bash"
assert_link_not_exist "${BASH_IT?}/enabled/250---base.plugin.bash"
assert_link_not_exist "${BASH_IT?}/enabled/800---aliases.completion.bash"
assert_link_not_exist "${BASH_IT?}/enabled/350---bash-it.completion.bash"
assert_link_not_exist "${BASH_IT?}/enabled/325---system.completion.bash"
}
@test "helpers: profile save and load" {
run _enable-alias "general"
assert_success
run _enable-plugin "base"
assert_success
run _enable-plugin "alias-completion"
assert_success
run _enable-completion "bash-it"
assert_success
run _enable-completion "system"
assert_success
run _bash-it-profile-save "test"
assert_success
run _disable-alias "general"
assert_link_not_exist "$BASH_IT/enabled/150---general.aliases.bash"
assert_success
assert_output "general disabled."
assert_link_not_exist "${BASH_IT?}/enabled/150---general.aliases.bash"
run _bash-it-profile-load "test"
assert_link_exist "$BASH_IT/enabled/150---general.aliases.bash"
assert_success
assert_link_exist "${BASH_IT?}/enabled/150---general.aliases.bash"
}
@test "helpers: profile load corrupted profile file: bad component" {
@ -383,10 +400,10 @@ function local_setup() {
@test "helpers: profile rm sanity" {
run _bash-it-profile-save "test"
assert_file_exist "$BASH_IT/profiles/test.bash_it"
assert_file_exist "${BASH_IT?}/profiles/test.bash_it"
run _bash-it-profile-rm "test"
assert_line -n 0 "Removed profile 'test' successfully!"
assert_file_not_exist "$BASH_IT/profiles/test.bash_it"
assert_file_not_exist "${BASH_IT?}/profiles/test.bash_it"
}
@test "helpers: profile rm no params" {
@ -402,7 +419,7 @@ function local_setup() {
@test "helpers: profile rm default" {
run _bash-it-profile-rm "default"
assert_line -n 0 -p "Can not remove the default profile..."
assert_file_exist "$BASH_IT/profiles/default.bash_it"
assert_file_exist "${BASH_IT?}/profiles/default.bash_it"
}
@test "helpers: profile rm bad profile name" {
@ -429,11 +446,11 @@ function local_setup() {
}
@test "helpers: migrate plugins and completions that share the same name" {
ln -s $BASH_IT/completion/available/dirs.completion.bash $BASH_IT/completion/enabled/350---dirs.completion.bash
assert_link_exist "$BASH_IT/completion/enabled/350---dirs.completion.bash"
ln -s "${BASH_IT?}/completion/available/dirs.completion.bash" "${BASH_IT?}/completion/enabled/350---dirs.completion.bash"
assert_link_exist "${BASH_IT?}/completion/enabled/350---dirs.completion.bash"
ln -s $BASH_IT/plugins/available/dirs.plugin.bash $BASH_IT/plugins/enabled/250---dirs.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/250---dirs.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/dirs.plugin.bash" "${BASH_IT?}/plugins/enabled/250---dirs.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/250---dirs.plugin.bash"
run _bash-it-migrate
assert_line -n 0 'Migrating plugin dirs.'
@ -444,60 +461,60 @@ function local_setup() {
assert_line -n 5 'dirs enabled with priority 350.'
assert_line -n 6 'If any migration errors were reported, please try the following: reload && bash-it migrate'
assert_link_exist "$BASH_IT/enabled/350---dirs.completion.bash"
assert_link_exist "$BASH_IT/enabled/250---dirs.plugin.bash"
assert [ ! -L "$BASH_IT/completion/enabled/350----dirs.completion.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/250----dirs.plugin.bash" ]
assert_link_exist "${BASH_IT?}/enabled/350---dirs.completion.bash"
assert_link_exist "${BASH_IT?}/enabled/250---dirs.plugin.bash"
assert [ ! -L "${BASH_IT?}/completion/enabled/350----dirs.completion.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/250----dirs.plugin.bash" ]
}
@test "helpers: migrate enabled plugins that don't use the new priority-based configuration" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/node.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/node.plugin.bash" "${BASH_IT?}/plugins/enabled/node.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/node.plugin.bash"
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash
assert_link_exist "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash"
ln -s "${BASH_IT?}/aliases/available/todo.txt-cli.aliases.bash" "${BASH_IT?}/aliases/enabled/todo.txt-cli.aliases.bash"
assert_link_exist "${BASH_IT?}/aliases/enabled/todo.txt-cli.aliases.bash"
run _enable-plugin "ssh"
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---ssh.plugin.bash"
run _bash-it-migrate
assert_line -n 0 'Migrating alias todo.txt-cli.'
assert_line -n 1 'todo.txt-cli disabled.'
assert_line -n 2 'todo.txt-cli enabled with priority 150.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/node.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash" ]
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---node.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---ssh.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/150---todo.txt-cli.aliases.bash"
assert [ ! -L "${BASH_IT?}/plugins/enabled/node.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/aliases/enabled/todo.txt-cli.aliases.bash" ]
}
@test "helpers: migrate enabled plugins that use the new priority-based configuration in the individual directories" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/225---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash"
ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/250---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/250---node.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/node.plugin.bash" "${BASH_IT?}/plugins/enabled/250---node.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/250---node.plugin.bash"
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/250---todo.txt-cli.aliases.bash
assert_link_exist "$BASH_IT/aliases/enabled/250---todo.txt-cli.aliases.bash"
ln -s "${BASH_IT?}/aliases/available/todo.txt-cli.aliases.bash" "${BASH_IT?}/aliases/enabled/250---todo.txt-cli.aliases.bash"
assert_link_exist "${BASH_IT?}/aliases/enabled/250---todo.txt-cli.aliases.bash"
run _enable-plugin "ssh"
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---ssh.plugin.bash"
run _bash-it-migrate
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/225----node.plugin.bash" ]
assert [ ! -L "$BASH_IT/plugins/enabled/250----nvm.plugin.bash" ]
assert [ ! -L "$BASH_IT/aliases/enabled/250----todo.txt-cli.aliases.bash" ]
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---node.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---ssh.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/150---todo.txt-cli.aliases.bash"
assert [ ! -L "${BASH_IT?}/plugins/enabled/225----node.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/250----nvm.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/aliases/enabled/250----todo.txt-cli.aliases.bash" ]
}
@test "helpers: run the migrate command without anything to migrate and nothing enabled" {
@ -506,28 +523,28 @@ function local_setup() {
@test "helpers: run the migrate command without anything to migrate" {
run _enable-plugin "ssh"
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---ssh.plugin.bash"
run _bash-it-migrate
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---ssh.plugin.bash"
}
function __migrate_all_components() {
subdirectory="$1"
one_type="$2"
priority="$3"
subdirectory="${1:-}"
one_type="${2:-}"
priority="${3:-}"
for f in "${BASH_IT}/$subdirectory/available/"*.bash
do
to_enable=$(basename $f)
if [ -z "$priority" ]; then
to_enable=$(basename "$f")
if [[ -z "$priority" ]]; then
ln -s "../available/$to_enable" "${BASH_IT}/${subdirectory}/enabled/$to_enable"
else
ln -s "../available/$to_enable" "${BASH_IT}/${subdirectory}/enabled/$priority---$to_enable"
fi
done
ls ${BASH_IT}/${subdirectory}/enabled
ls "${BASH_IT?}/${subdirectory}/enabled"
all_available=$(compgen -G "${BASH_IT}/${subdirectory}/available/*.$one_type.bash" | wc -l | xargs)
all_enabled_old=$(compgen -G "${BASH_IT}/${subdirectory}/enabled/*.$one_type.bash" | wc -l | xargs)
@ -547,47 +564,53 @@ function __migrate_all_components() {
subdirectory="plugins"
one_type="plugin"
__migrate_all_components "$subdirectory" "$one_type"
run __migrate_all_components "$subdirectory" "$one_type"
assert_success
}
@test "helpers: migrate all aliases" {
subdirectory="aliases"
one_type="aliases"
__migrate_all_components "$subdirectory" "$one_type"
run __migrate_all_components "$subdirectory" "$one_type"
assert_success
}
@test "helpers: migrate all completions" {
subdirectory="completion"
one_type="completion"
__migrate_all_components "$subdirectory" "$one_type"
run __migrate_all_components "$subdirectory" "$one_type"
assert_success
}
@test "helpers: migrate all plugins with previous priority" {
subdirectory="plugins"
one_type="plugin"
__migrate_all_components "$subdirectory" "$one_type" "100"
run __migrate_all_components "$subdirectory" "$one_type" "100"
assert_success
}
@test "helpers: migrate all aliases with previous priority" {
subdirectory="aliases"
one_type="aliases"
__migrate_all_components "$subdirectory" "$one_type" "100"
run __migrate_all_components "$subdirectory" "$one_type" "100"
assert_success
}
@test "helpers: migrate all completions with previous priority" {
subdirectory="completion"
one_type="completion"
__migrate_all_components "$subdirectory" "$one_type" "100"
run __migrate_all_components "$subdirectory" "$one_type" "100"
assert_success
}
@test "helpers: verify that existing components are automatically migrated when something is enabled" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
run bash-it enable plugin "node"
assert_line -n 0 'Migrating plugin nvm.'
@ -595,16 +618,16 @@ function __migrate_all_components() {
assert_line -n 2 'nvm enabled with priority 225.'
assert_line -n 3 'If any migration errors were reported, please try the following: reload && bash-it migrate'
assert_line -n 4 'node enabled with priority 250.'
assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash"
assert [ ! -L "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/250---node.plugin.bash"
}
@test "helpers: verify that existing components are automatically migrated when something is disabled" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/250---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/250---node.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/node.plugin.bash" "${BASH_IT?}/plugins/enabled/250---node.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/250---node.plugin.bash"
run bash-it disable plugin "node"
assert_line -n 0 'Migrating plugin node.'
@ -615,89 +638,94 @@ function __migrate_all_components() {
assert_line -n 5 'nvm enabled with priority 225.'
assert_line -n 6 'If any migration errors were reported, please try the following: reload && bash-it migrate'
assert_line -n 7 'node disabled.'
assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert [ ! -L "$BASH_IT/plugins/enabled/250---node.plugin.bash" ]
assert [ ! -L "$BASH_IT/enabled/250---node.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
assert [ ! -L "${BASH_IT?}/plugins/enabled/250---node.plugin.bash" ]
assert [ ! -L "${BASH_IT?}/enabled/250---node.plugin.bash" ]
}
@test "helpers: enable all plugins" {
local available enabled
run _enable-plugin "all"
local available=$(find $BASH_IT/plugins/available -name *.plugin.bash | wc -l | xargs)
local enabled=$(find $BASH_IT/enabled -name [0-9]*.plugin.bash | wc -l | xargs)
available=$(find "${BASH_IT?}/plugins/available" -name '*.plugin.bash' | wc -l | xargs)
enabled=$(find "${BASH_IT?}/enabled" -name '[0-9]*.plugin.bash' | wc -l | xargs)
assert_equal "$available" "$enabled"
}
@test "helpers: disable all plugins" {
local available enabled enabled2
run _enable-plugin "all"
local available=$(find $BASH_IT/plugins/available -name *.plugin.bash | wc -l | xargs)
local enabled=$(find $BASH_IT/enabled -name [0-9]*.plugin.bash | wc -l | xargs)
available=$(find "${BASH_IT?}/plugins/available" -name '*.plugin.bash' | wc -l | xargs)
enabled=$(find "${BASH_IT?}/enabled" -name '[0-9]*.plugin.bash' | wc -l | xargs)
assert_equal "$available" "$enabled"
run _enable-alias "ag"
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
run _disable-plugin "all"
local enabled2=$(find $BASH_IT/enabled -name [0-9]*.plugin.bash | wc -l | xargs)
enabled2=$(find "${BASH_IT?}/enabled" -name '[0-9]*.plugin.bash' | wc -l | xargs)
assert_equal "0" "$enabled2"
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
}
@test "helpers: disable all plugins in the old directory structure" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
local enabled enabled2
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/node.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/node.plugin.bash" "${BASH_IT?}/plugins/enabled/node.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/node.plugin.bash"
local enabled=$(find $BASH_IT/plugins/enabled -name *.plugin.bash | wc -l | xargs)
enabled=$(find "${BASH_IT?}/plugins/enabled" -name '*.plugin.bash' | wc -l | xargs)
assert_equal "2" "$enabled"
run _enable-alias "ag"
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
run _disable-plugin "all"
local enabled2=$(find $BASH_IT/plugins/enabled -name *.plugin.bash | wc -l | xargs)
enabled2=$(find "${BASH_IT?}/plugins/enabled" -name '*.plugin.bash' | wc -l | xargs)
assert_equal "0" "$enabled2"
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
}
@test "helpers: disable all plugins in the old directory structure with priority" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/250---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/250---nvm.plugin.bash"
local enabled enabled2
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/250---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/250---nvm.plugin.bash"
ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/250---node.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/250---node.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/node.plugin.bash" "${BASH_IT?}/plugins/enabled/250---node.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/250---node.plugin.bash"
local enabled=$(find $BASH_IT/plugins/enabled -name *.plugin.bash | wc -l | xargs)
enabled=$(find "${BASH_IT?}/plugins/enabled" -name '*.plugin.bash' | wc -l | xargs)
assert_equal "2" "$enabled"
run _enable-alias "ag"
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
run _disable-plugin "all"
local enabled2=$(find $BASH_IT/plugins/enabled -name *.plugin.bash | wc -l | xargs)
enabled2=$(find "${BASH_IT?}/plugins/enabled" -name '*.plugin.bash' | wc -l | xargs)
assert_equal "0" "$enabled2"
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
}
@test "helpers: disable all plugins without anything enabled" {
local enabled=$(find $BASH_IT/enabled -name [0-9]*.plugin.bash | wc -l | xargs)
local enabled enabled2
enabled=$(find "${BASH_IT?}/enabled" -name '[0-9]*.plugin.bash' | wc -l | xargs)
assert_equal "0" "$enabled"
run _enable-alias "ag"
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
run _disable-plugin "all"
local enabled2=$(find $BASH_IT/enabled -name [0-9]*.plugin.bash | wc -l | xargs)
enabled2=$(find "${BASH_IT?}/enabled" -name '[0-9]*.plugin.bash' | wc -l | xargs)
assert_equal "0" "$enabled2"
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ag.aliases.bash"
}
@test "helpers: enable the ansible aliases through the bash-it function" {
run bash-it enable alias "ansible"
assert_line -n 0 'ansible enabled with priority 150.'
assert_link_exist "$BASH_IT/enabled/150---ansible.aliases.bash"
assert_link_exist "${BASH_IT?}/enabled/150---ansible.aliases.bash"
}
@test "helpers: describe the nvm plugin without enabling it" {
@ -707,21 +735,21 @@ function __migrate_all_components() {
@test "helpers: describe the nvm plugin after enabling it" {
run _enable-plugin "nvm"
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/enabled/225---nvm.plugin.bash"
_bash-it-plugins | grep "nvm" | grep "\[x\]"
}
@test "helpers: describe the nvm plugin after enabling it in the old directory" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/nvm.plugin.bash"
_bash-it-plugins | grep "nvm" | grep "\[x\]"
}
@test "helpers: describe the nvm plugin after enabling it in the old directory with priority" {
ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/225---nvm.plugin.bash
assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash"
ln -s "${BASH_IT?}/plugins/available/nvm.plugin.bash" "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash"
assert_link_exist "${BASH_IT?}/plugins/enabled/225---nvm.plugin.bash"
_bash-it-plugins | grep "nvm" | grep "\[x\]"
}

View File

@ -1,4 +1,5 @@
# shellcheck shell=bats
# shellcheck disable=SC2034
load "${MAIN_BASH_IT_DIR?}/test/test_helper.bash"
@ -7,77 +8,77 @@ function local_setup_file() {
}
@test "lib log: basic debug logging with BASH_IT_LOG_LEVEL_ALL" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_ALL
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_ALL?}
run _log_debug "test test test"
assert_output "DEBUG: default: test test test"
}
@test "lib log: basic warning logging with BASH_IT_LOG_LEVEL_ALL" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_ALL
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_ALL?}
run _log_warning "test test test"
assert_output " WARN: default: test test test"
}
@test "lib log: basic error logging with BASH_IT_LOG_LEVEL_ALL" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_ALL
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_ALL?}
run _log_error "test test test"
assert_output "ERROR: default: test test test"
}
@test "lib log: basic debug logging with BASH_IT_LOG_LEVEL_WARNING" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_WARNING
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_WARNING?}
run _log_debug "test test test"
refute_output
assert_output ""
}
@test "lib log: basic warning logging with BASH_IT_LOG_LEVEL_WARNING" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_WARNING
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_WARNING?}
run _log_warning "test test test"
assert_output " WARN: default: test test test"
}
@test "lib log: basic error logging with BASH_IT_LOG_LEVEL_WARNING" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_WARNING
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_WARNING?}
run _log_error "test test test"
assert_output "ERROR: default: test test test"
}
@test "lib log: basic debug logging with BASH_IT_LOG_LEVEL_ERROR" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_ERROR
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_ERROR?}
run _log_debug "test test test"
refute_output
assert_output ""
}
@test "lib log: basic warning logging with BASH_IT_LOG_LEVEL_ERROR" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_ERROR
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_ERROR?}
run _log_warning "test test test"
refute_output
assert_output ""
}
@test "lib log: basic error logging with BASH_IT_LOG_LEVEL_ERROR" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_ERROR
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_ERROR?}
run _log_error "test test test"
assert_output "ERROR: default: test test test"
}
@test "lib log: basic debug silent logging" {
run _log_debug "test test test"
refute_output
assert_output ""
}
@test "lib log: basic warning silent logging" {
run _log_warning "test test test"
refute_output
assert_output ""
}
@test "lib log: basic error silent logging" {
run _log_error "test test test"
refute_output
assert_output ""
}
@test "lib log: logging with prefix" {
BASH_IT_LOG_LEVEL=$BASH_IT_LOG_LEVEL_ALL
BASH_IT_LOG_LEVEL=${BASH_IT_LOG_LEVEL_ALL?}
BASH_IT_LOG_PREFIX="nice: prefix: "
run _log_debug "test test test"
assert_output "DEBUG: nice: prefix: test test test"

View File

@ -1,4 +1,5 @@
# shellcheck shell=bats
# shellcheck disable=SC2030 disable=SC2031
load ../test_helper
@ -11,8 +12,9 @@ function local_setup {
test_prompt_string=""
export PROMPT_COMMAND="$test_prompt_string"
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
run load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
assert_success
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
assert_equal "${PROMPT_COMMAND}" $'__bp_trap_string="$(trap -p DEBUG)"\ntrap - DEBUG\n__bp_install'
}
@ -21,8 +23,9 @@ function local_setup {
test_prompt_string="nah"
export PROMPT_COMMAND="$test_prompt_string"
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
run load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
assert_success
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
assert_equal "${PROMPT_COMMAND}" "$test_prompt_string"$'\n__bp_trap_string="$(trap -p DEBUG)"\ntrap - DEBUG\n__bp_install'
}
@ -32,8 +35,9 @@ function local_setup {
export PROMPT_COMMAND="$test_prompt_string"
export __bp_delay_install="blarg"
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
run load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
assert_success
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
assert_equal "${PROMPT_COMMAND}" "$test_prompt_string"
@ -48,8 +52,9 @@ function local_setup {
test_prompt_string=""
export PROMPT_COMMAND="$test_prompt_string"
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
run load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
assert_success
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
run __bp_install
assert_success
@ -62,8 +67,9 @@ function local_setup {
test_prompt_string="nah"
export PROMPT_COMMAND="$test_prompt_string"
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
run load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
assert_success
load ../../vendor/github.com/rcaloras/bash-preexec/bash-preexec.sh
run __bp_install
assert_success

View File

@ -12,25 +12,30 @@ function local_setup() {
}
@test "search: plugin base" {
export BASH_IT_SEARCH_USE_COLOR=false
run _bash-it-search-component 'plugins' 'base'
assert_success
assert_line -n 0 ' plugins: base '
}
@test "search: git" {
local plugin completion
run _bash-it-search 'git' --no-color
assert_success
assert_line -n 0 ' aliases: git gitsvn '
assert_line -n 1 -p ' plugins:'
for plugin in "autojump" "git" "gitstatus" "git-subrepo" "jgitflow" "jump"
do
echo $plugin
assert_line -n 1 -p $plugin
assert_line -n 1 -p "$plugin"
done
for completion in "git" "git_flow" "git_flow_avh" "github-cli"
do
assert_line -n 2 -p "$completion"
done
assert_line -n 2 ' completions: git git_flow git_flow_avh github-cli '
}
@test "search: ruby gem bundle rake rails" {
run _bash-it-search rails ruby gem bundler rake --no-color
assert_success
assert_line -n 0 ' aliases: bundler rails '
assert_line -n 1 ' plugins: chruby chruby-auto rails ruby '
@ -39,6 +44,7 @@ function local_setup() {
@test "search: rails ruby gem bundler rake -chruby" {
run _bash-it-search rails ruby gem bundler rake -chruby --no-color
assert_success
assert_line -n 0 ' aliases: bundler rails '
assert_line -n 1 ' plugins: rails ruby '
@ -47,22 +53,42 @@ function local_setup() {
@test "search: @git" {
run _bash-it-search '@git' --no-color
assert_success
assert_line -n 0 ' aliases: git '
assert_line -n 1 ' plugins: git '
assert_line -n 2 ' completions: git '
}
@test "search: @git --enable / --disable" {
set -e
@test "search: @git --enable / --disable" {
run _bash-it-search '@git' --enable --no-color
assert_success
run _bash-it-search '@git' --no-color
[[ "${lines[0]}" =~ '✓' ]]
assert_success
assert_line -n 0 -p '✓'
run _bash-it-search '@git' --disable --no-color
assert_success
run _bash-it-search '@git' --no-color
assert_success
assert_line -n 0 ' aliases: git '
assert_line -n 1 ' plugins: git '
assert_line -n 2 ' completions: git '
}
@test "search: @git --disable / --enable" {
run _bash-it-search '@git' --disable --no-color
assert_success
run _bash-it-search '@git' --no-color
assert_success
assert_line -n 0 ' aliases: git '
assert_line -n 1 ' plugins: git '
assert_line -n 2 ' completions: git '
run _bash-it-search '@git' --enable --no-color
assert_success
run _bash-it-search '@git' --no-color
assert_success
assert_line -n 0 -p '✓'
}