Merge pull request #1060 from nwinkler/bats-migration

Bats migration
pull/1063/head
Nils Winkler 2017-10-14 18:21:07 +02:00 committed by GitHub
commit f9479cc107
17 changed files with 369 additions and 367 deletions

12
.gitmodules vendored 100644
View File

@ -0,0 +1,12 @@
[submodule "test_lib/bats-core"]
path = test_lib/bats-core
url = https://github.com/bats-core/bats-core
[submodule "test_lib/bats-support"]
path = test_lib/bats-support
url = https://github.com/ztombol/bats-support
[submodule "test_lib/bats-assert"]
path = test_lib/bats-assert
url = https://github.com/ztombol/bats-assert
[submodule "test_lib/bats-file"]
path = test_lib/bats-file
url = https://github.com/ztombol/bats-file

View File

@ -58,11 +58,20 @@ To run the test suite, simply execute the following in the directory where you c
test/run
```
This command will clone the [Bats Test Framework](https://github.com/sstephenson/bats) to a local directory and then run the test suite found in the [test](test) folder.
This command will ensure that the [Bats Test Framework](https://github.com/bats-core/bats-core) is available in the local `test_lib` directory (Bats is included as a Git submodule) and then run the test suite found in the [test](test) folder.
The test script will execute each test in turn, and will print a status for each test case.
When adding new test cases, please take a look at the existing test cases for examples.
The following libraries are used to help with the tests:
* Test Framework: https://github.com/bats-core/bats-core
* Support library for Bats-Assert: https://github.com/ztombol/bats-support
* General `assert` functions: https://github.com/ztombol/bats-assert
* File `assert` functions: https://github.com/ztombol/bats-file
When verifying test results, please try to use the `assert` functions found in these libraries.
## Features
* When adding new completions or plugins, please don't simply copy existing tools into the Bash-it codebase, try to load/integrate the tools instead.

View File

@ -6,9 +6,11 @@ load ../../lib/composure
function local_setup {
mkdir -p "$BASH_IT"
lib_directory="$(cd "$(dirname "$0")" && pwd)"
echo "Bi : $BASH_IT"
echo "Lib: $lib_directory"
# Use rsync to copy Bash-it to the temp folder
# rsync is faster than cp, since we can exclude the large ".git" folder
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../.. "$BASH_IT"
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../../.. "$BASH_IT"
rm -rf "$BASH_IT"/enabled
rm -rf "$BASH_IT"/aliases/enabled
@ -35,8 +37,8 @@ function local_teardown {
}
@test "bash-it: verify that the test fixture is available" {
assert [ -e "$BASH_IT/aliases/available/a.aliases.bash" ]
assert [ -e "$BASH_IT/aliases/available/b.aliases.bash" ]
assert_file_exist "$BASH_IT/aliases/available/a.aliases.bash"
assert_file_exist "$BASH_IT/aliases/available/b.aliases.bash"
}
@test "bash-it: load aliases in order" {
@ -44,12 +46,12 @@ function local_teardown {
mkdir -p $BASH_IT/plugins/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/150---a.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---a.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -59,7 +61,7 @@ function local_teardown {
run alias test_alias &> /dev/null
assert_success
assert_line "0" "alias test_alias='b'"
assert_line -n 0 "alias test_alias='b'"
}
@test "bash-it: load aliases in priority order" {
@ -67,12 +69,12 @@ function local_teardown {
mkdir -p $BASH_IT/plugins/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/175---a.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/175---a.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/175---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -82,7 +84,7 @@ function local_teardown {
run alias test_alias &> /dev/null
assert_success
assert_line "0" "alias test_alias='a'"
assert_line -n 0 "alias test_alias='a'"
}
@test "bash-it: load aliases and plugins in priority order" {
@ -90,14 +92,14 @@ function local_teardown {
mkdir -p $BASH_IT/plugins/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/150---a.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---a.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash"
ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/250---c.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---c.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---c.plugin.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -107,7 +109,7 @@ function local_teardown {
run alias test_alias &> /dev/null
assert_success
assert_line "0" "alias test_alias='c'"
assert_line -n 0 "alias test_alias='c'"
}
@test "bash-it: load aliases, plugins and completions in priority order" {
@ -116,14 +118,14 @@ function local_teardown {
mkdir -p $BASH_IT/completion/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/150---a.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---a.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/completion/enabled/350---b.completion.bash
assert [ -L "$BASH_IT/completion/enabled/350---b.completion.bash" ]
assert_link_exist "$BASH_IT/completion/enabled/350---b.completion.bash"
ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/250---c.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---c.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---c.plugin.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -134,7 +136,7 @@ function local_teardown {
run alias test_alias &> /dev/null
assert_success
# "b" wins since completions are loaded last in the old directory structure
assert_line "0" "alias test_alias='b'"
assert_line -n 0 "alias test_alias='b'"
}
@test "bash-it: load aliases, plugins and completions in priority order, even if the priority says otherwise" {
@ -143,14 +145,14 @@ function local_teardown {
mkdir -p $BASH_IT/completion/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/450---a.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/450---a.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/450---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/completion/enabled/350---b.completion.bash
assert [ -L "$BASH_IT/completion/enabled/350---b.completion.bash" ]
assert_link_exist "$BASH_IT/completion/enabled/350---b.completion.bash"
ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/950---c.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/950---c.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/950---c.plugin.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -161,7 +163,7 @@ function local_teardown {
run alias test_alias &> /dev/null
assert_success
# "b" wins since completions are loaded last in the old directory structure
assert_line "0" "alias test_alias='b'"
assert_line -n 0 "alias test_alias='b'"
}
@test "bash-it: load aliases and plugins in priority order, with one alias higher than plugins" {
@ -169,14 +171,14 @@ function local_teardown {
mkdir -p $BASH_IT/plugins/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/350---a.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/350---a.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/350---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash"
ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/250---c.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---c.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---c.plugin.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -188,19 +190,19 @@ function local_teardown {
assert_success
# This will be c, loaded from the c plugin, since the individual directories
# are loaded one by one.
assert_line "0" "alias test_alias='c'"
assert_line -n 0 "alias test_alias='c'"
}
@test "bash-it: load global aliases in order" {
mkdir -p $BASH_IT/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/150---a.aliases.bash
assert [ -L "$BASH_IT/enabled/150---a.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -210,19 +212,19 @@ function local_teardown {
run alias test_alias &> /dev/null
assert_success
assert_line "0" "alias test_alias='b'"
assert_line -n 0 "alias test_alias='b'"
}
@test "bash-it: load global aliases in priority order" {
mkdir -p $BASH_IT/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/175---a.aliases.bash
assert [ -L "$BASH_IT/enabled/175---a.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/175---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -232,21 +234,21 @@ function local_teardown {
run alias test_alias &> /dev/null
assert_success
assert_line "0" "alias test_alias='a'"
assert_line -n 0 "alias test_alias='a'"
}
@test "bash-it: load global aliases and plugins in priority order" {
mkdir -p $BASH_IT/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/150---a.aliases.bash
assert [ -L "$BASH_IT/enabled/150---a.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash"
ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/enabled/250---c.plugin.bash
assert [ -L "$BASH_IT/enabled/250---c.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---c.plugin.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -256,21 +258,21 @@ function local_teardown {
run alias test_alias &> /dev/null
assert_success
assert_line "0" "alias test_alias='c'"
assert_line -n 0 "alias test_alias='c'"
}
@test "bash-it: load global aliases and plugins in priority order, with one alias higher than plugins" {
mkdir -p $BASH_IT/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/350---a.aliases.bash
assert [ -L "$BASH_IT/enabled/350---a.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/350---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash"
ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/enabled/250---c.plugin.bash
assert [ -L "$BASH_IT/enabled/250---c.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---c.plugin.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -282,7 +284,7 @@ function local_teardown {
assert_success
# This will be a, loaded from the a aliases, since the global directory
# loads all component types at once
assert_line "0" "alias test_alias='a'"
assert_line -n 0 "alias test_alias='a'"
}
@test "bash-it: load global aliases and plugins in priority order, individual old directories are loaded later" {
@ -290,17 +292,17 @@ function local_teardown {
mkdir -p $BASH_IT/aliases/enabled
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash"
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/350---a.aliases.bash
assert [ -L "$BASH_IT/enabled/350---a.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/350---a.aliases.bash"
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash"
ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/enabled/250---c.plugin.bash
assert [ -L "$BASH_IT/enabled/250---c.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---c.plugin.bash"
# Add one file in the old directory structure
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash"
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
@ -312,15 +314,15 @@ function local_teardown {
assert_success
# This will be "b", loaded from the b aliases in the individual directory, since
# the individual directories are loaded after the global one.
assert_line "0" "alias test_alias='b'"
assert_line -n 0 "alias test_alias='b'"
}
@test "bash-it: load enabled aliases from new structure, priority-based" {
mkdir -p $BASH_IT/enabled
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash
assert [ -L "$BASH_IT/enabled/150---atom.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---atom.aliases.bash"
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash"
# The `ah` alias should not exist
run alias ah &> /dev/null
@ -336,9 +338,9 @@ function local_teardown {
mkdir -p $BASH_IT/aliases/enabled
mkdir -p $BASH_IT/plugins/enabled
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/150---atom.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---atom.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---atom.aliases.bash"
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash"
# The `ah` alias should not exist
run alias ah &> /dev/null
@ -354,9 +356,9 @@ function local_teardown {
mkdir -p $BASH_IT/aliases/enabled
mkdir -p $BASH_IT/plugins/enabled
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/atom.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/atom.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/atom.aliases.bash"
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/base.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/base.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/base.plugin.bash"
# The `ah` alias should not exist
run alias ah &> /dev/null

View File

@ -9,7 +9,7 @@ function local_setup {
lib_directory="$(cd "$(dirname "$0")" && pwd)"
# Use rsync to copy Bash-it to the temp folder
# rsync is faster than cp, since we can exclude the large ".git" folder
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../.. "$BASH_IT"
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../../.. "$BASH_IT"
rm -rf "$BASH_IT"/enabled
rm -rf "$BASH_IT"/aliases/enabled
@ -74,295 +74,295 @@ function __check_completion () {
@test "completion bash-it: help - show options" {
run __check_completion 'bash-it help '
assert_line "0" "aliases completions migrate plugins update"
assert_line -n 0 "aliases completions migrate plugins update"
}
@test "completion bash-it: help - aliases v" {
run __check_completion 'bash-it help aliases v'
assert_line "0" "vagrant vault vim"
assert_line -n 0 "vagrant vault vim"
}
@test "completion bash-it: update - show no options" {
run __check_completion 'bash-it update '
assert_line "0" ""
assert_line -n 0 ""
}
@test "completion bash-it: search - show no options" {
run __check_completion 'bash-it search '
assert_line "0" ""
assert_line -n 0 ""
}
@test "completion bash-it: migrate - show no options" {
run __check_completion 'bash-it migrate '
assert_line "0" ""
assert_line -n 0 ""
}
@test "completion bash-it: show options" {
run __check_completion 'bash-it '
assert_line "0" "disable enable help migrate search show update version"
assert_line -n 0 "disable enable help migrate search show update version"
}
@test "completion bash-it: bash-ti - show options" {
run __check_completion 'bash-ti '
assert_line "0" "disable enable help migrate search show update version"
assert_line -n 0 "disable enable help migrate search show update version"
}
@test "completion bash-it: shit - show options" {
run __check_completion 'shit '
assert_line "0" "disable enable help migrate search show update version"
assert_line -n 0 "disable enable help migrate search show update version"
}
@test "completion bash-it: bashit - show options" {
run __check_completion 'bashit '
assert_line "0" "disable enable help migrate search show update version"
assert_line -n 0 "disable enable help migrate search show update version"
}
@test "completion bash-it: batshit - show options" {
run __check_completion 'batshit '
assert_line "0" "disable enable help migrate search show update version"
assert_line -n 0 "disable enable help migrate search show update version"
}
@test "completion bash-it: bash_it - show options" {
run __check_completion 'bash_it '
assert_line "0" "disable enable help migrate search show update version"
assert_line -n 0 "disable enable help migrate search show update version"
}
@test "completion bash-it: show - show options" {
run __check_completion 'bash-it show '
assert_line "0" "aliases completions plugins"
assert_line -n 0 "aliases completions plugins"
}
@test "completion bash-it: enable - show options" {
run __check_completion 'bash-it enable '
assert_line "0" "alias completion plugin"
assert_line -n 0 "alias completion plugin"
}
@test "completion bash-it: enable - show options a" {
run __check_completion 'bash-it enable a'
assert_line "0" "alias"
assert_line -n 0 "alias"
}
@test "completion bash-it: disable - show options" {
run __check_completion 'bash-it disable '
assert_line "0" "alias completion plugin"
assert_line -n 0 "alias completion plugin"
}
@test "completion bash-it: disable - show options a" {
run __check_completion 'bash-it disable a'
assert_line "0" "alias"
assert_line -n 0 "alias"
}
@test "completion bash-it: disable - provide nothing when atom is not enabled" {
run __check_completion 'bash-it disable alias ato'
assert_line "0" ""
assert_line -n 0 ""
}
@test "completion bash-it: disable - provide all when atom is not enabled" {
run __check_completion 'bash-it disable alias a'
assert_line "0" "all"
assert_line -n 0 "all"
}
@test "completion bash-it: disable - provide the a* aliases when atom is enabled with the old location and name" {
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/atom.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/atom.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/atom.aliases.bash"
ln -s $BASH_IT/completion/available/apm.completion.bash $BASH_IT/completion/enabled/apm.completion.bash
assert [ -L "$BASH_IT/completion/enabled/apm.completion.bash" ]
assert_link_exist "$BASH_IT/completion/enabled/apm.completion.bash"
run __check_completion 'bash-it disable alias a'
assert_line "0" "all atom"
assert_line -n 0 "all atom"
}
@test "completion bash-it: disable - provide the a* aliases when atom is enabled with the old location and priority-based name" {
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/150---atom.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---atom.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---atom.aliases.bash"
ln -s $BASH_IT/completion/available/apm.completion.bash $BASH_IT/completion/enabled/350---apm.completion.bash
assert [ -L "$BASH_IT/completion/enabled/350---apm.completion.bash" ]
assert_link_exist "$BASH_IT/completion/enabled/350---apm.completion.bash"
run __check_completion 'bash-it disable alias a'
assert_line "0" "all atom"
assert_line -n 0 "all atom"
}
@test "completion bash-it: disable - provide the a* aliases when atom is enabled with the new location and priority-based name" {
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash
assert [ -L "$BASH_IT/enabled/150---atom.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---atom.aliases.bash"
ln -s $BASH_IT/completion/available/apm.completion.bash $BASH_IT/enabled/350---apm.completion.bash
assert [ -L "$BASH_IT/enabled/350---apm.completion.bash" ]
assert_link_exist "$BASH_IT/enabled/350---apm.completion.bash"
run __check_completion 'bash-it disable alias a'
assert_line "0" "all atom"
assert_line -n 0 "all atom"
}
@test "completion bash-it: disable - provide the docker-machine plugin when docker-machine is enabled with the old location and name" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/docker-compose.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/docker-compose.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/docker-compose.aliases.bash"
ln -s $BASH_IT/plugins/available/docker-machine.plugin.bash $BASH_IT/plugins/enabled/docker-machine.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/docker-machine.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/docker-machine.plugin.bash"
run __check_completion 'bash-it disable plugin docker'
assert_line "0" "docker-machine"
assert_line -n 0 "docker-machine"
}
@test "completion bash-it: disable - provide the docker-machine plugin when docker-machine is enabled with the old location and priority-based name" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash
assert [ -L "$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/plugins/available/docker-machine.plugin.bash $BASH_IT/plugins/enabled/350---docker-machine.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/350---docker-machine.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/350---docker-machine.plugin.bash"
run __check_completion 'bash-it disable plugin docker'
assert_line "0" "docker-machine"
assert_line -n 0 "docker-machine"
}
@test "completion bash-it: disable - provide the docker-machine plugin when docker-machine is enabled with the new location and priority-based name" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/enabled/150---docker-compose.aliases.bash
assert [ -L "$BASH_IT/enabled/150---docker-compose.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---docker-compose.aliases.bash"
ln -s $BASH_IT/plugins/available/docker-machine.plugin.bash $BASH_IT/enabled/350---docker-machine.plugin.bash
assert [ -L "$BASH_IT/enabled/350---docker-machine.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/350---docker-machine.plugin.bash"
run __check_completion 'bash-it disable plugin docker'
assert_line "0" "docker-machine"
assert_line -n 0 "docker-machine"
}
@test "completion bash-it: disable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and name" {
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash
assert [ -L "$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/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/todo.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/todo.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/todo.plugin.bash"
run __check_completion 'bash-it disable alias to'
assert_line "0" "todo.txt-cli"
assert_line -n 0 "todo.txt-cli"
}
@test "completion bash-it: disable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and priority-based name" {
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash
assert [ -L "$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/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/350---todo.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/350---todo.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/350---todo.plugin.bash"
run __check_completion 'bash-it disable alias to'
assert_line "0" "todo.txt-cli"
assert_line -n 0 "todo.txt-cli"
}
@test "completion bash-it: disable - provide the todo.txt-cli aliases when todo plugin is enabled with the new location and priority-based name" {
ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/enabled/150---todo.txt-cli.aliases.bash
assert [ -L "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash"
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/enabled/350---todo.plugin.bash
assert [ -L "$BASH_IT/enabled/350---todo.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/350---todo.plugin.bash"
run __check_completion 'bash-it disable alias to'
assert_line "0" "todo.txt-cli"
assert_line -n 0 "todo.txt-cli"
}
@test "completion bash-it: enable - provide the atom aliases when not enabled" {
run __check_completion 'bash-it enable alias ato'
assert_line "0" "atom"
assert_line -n 0 "atom"
}
@test "completion bash-it: enable - provide the a* aliases when not enabled" {
run __check_completion 'bash-it enable alias a'
assert_line "0" "all ag ansible apt atom"
assert_line -n 0 "all ag ansible apt atom"
}
@test "completion bash-it: enable - provide the a* aliases when atom is enabled with the old location and name" {
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/atom.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/atom.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/atom.aliases.bash"
run __check_completion 'bash-it enable alias a'
assert_line "0" "all ag ansible apt"
assert_line -n 0 "all ag ansible apt"
}
@test "completion bash-it: enable - provide the a* aliases when atom is enabled with the old location and priority-based name" {
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/150---atom.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---atom.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---atom.aliases.bash"
run __check_completion 'bash-it enable alias a'
assert_line "0" "all ag ansible apt"
assert_line -n 0 "all ag ansible apt"
}
@test "completion bash-it: enable - provide the a* aliases when atom is enabled with the new location and priority-based name" {
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash
assert [ -L "$BASH_IT/enabled/150---atom.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---atom.aliases.bash"
run __check_completion 'bash-it enable alias a'
assert_line "0" "all ag ansible apt"
assert_line -n 0 "all ag ansible apt"
}
@test "completion bash-it: enable - provide the docker-* plugins when nothing is enabled with the old location and name" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/docker-compose.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/docker-compose.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/docker-compose.aliases.bash"
run __check_completion 'bash-it enable plugin docker'
assert_line "0" "docker-compose docker-machine docker"
assert_line -n 0 "docker-compose docker-machine docker"
}
@test "completion bash-it: enable - provide the docker-* plugins when nothing is enabled with the old location and priority-based name" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
run __check_completion 'bash-it enable plugin docker'
assert_line "0" "docker-compose docker-machine docker"
assert_line -n 0 "docker-compose docker-machine docker"
}
@test "completion bash-it: enable - provide the docker-* plugins when nothing is enabled with the new location and priority-based name" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/enabled/150---docker-compose.aliases.bash
assert [ -L "$BASH_IT/enabled/150---docker-compose.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---docker-compose.aliases.bash"
run __check_completion 'bash-it enable plugin docker'
assert_line "0" "docker-compose docker-machine docker"
assert_line -n 0 "docker-compose docker-machine docker"
}
@test "completion bash-it: enable - provide the docker-* completions when nothing is enabled with the old location and name" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/docker-compose.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/docker-compose.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/docker-compose.aliases.bash"
run __check_completion 'bash-it enable completion docker'
assert_line "0" "docker docker-compose docker-machine"
assert_line -n 0 "docker docker-compose docker-machine"
}
@test "completion bash-it: enable - provide the docker-* completions when nothing is enabled with the old location and priority-based name" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash
assert [ -L "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" ]
assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash"
run __check_completion 'bash-it enable completion docker'
assert_line "0" "docker docker-compose docker-machine"
assert_line -n 0 "docker docker-compose docker-machine"
}
@test "completion bash-it: enable - provide the docker-* completions when nothing is enabled with the new location and priority-based name" {
ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/enabled/150---docker-compose.aliases.bash
assert [ -L "$BASH_IT/enabled/150---docker-compose.aliases.bash" ]
assert_link_exist "$BASH_IT/enabled/150---docker-compose.aliases.bash"
run __check_completion 'bash-it enable completion docker'
assert_line "0" "docker docker-compose docker-machine"
assert_line -n 0 "docker docker-compose docker-machine"
}
@test "completion bash-it: enable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and name" {
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/todo.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/todo.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/todo.plugin.bash"
run __check_completion 'bash-it enable alias to'
assert_line "0" "todo.txt-cli"
assert_line -n 0 "todo.txt-cli"
}
@test "completion bash-it: enable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and priority-based name" {
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/350---todo.plugin.bash
assert [ -L "$BASH_IT/plugins/enabled/350---todo.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/350---todo.plugin.bash"
run __check_completion 'bash-it enable alias to'
assert_line "0" "todo.txt-cli"
assert_line -n 0 "todo.txt-cli"
}
@test "completion bash-it: enable - provide the todo.txt-cli aliases when todo plugin is enabled with the new location and priority-based name" {
ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/enabled/350---todo.plugin.bash
assert [ -L "$BASH_IT/enabled/350---todo.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/350---todo.plugin.bash"
run __check_completion 'bash-it enable alias to'
assert_line "0" "todo.txt-cli"
assert_line -n 0 "todo.txt-cli"
}

View File

@ -18,7 +18,7 @@ function local_setup {
lib_directory="$(cd "$(dirname "$0")" && pwd)"
# Use rsync to copy Bash-it to the temp folder
# rsync is faster than cp, since we can exclude the large ".git" folder
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../.. "$BASH_IT"
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../../.. "$BASH_IT"
rm -rf "$BASH_IT"/enabled
rm -rf "$BASH_IT"/aliases/enabled
@ -42,7 +42,7 @@ function local_teardown {
}
@test "install: verify that the install script exists" {
assert [ -e "$BASH_IT/install.sh" ]
assert_file_exist "$BASH_IT/install.sh"
}
@test "install: run the install script silently" {
@ -50,13 +50,13 @@ function local_teardown {
./install.sh --silent
assert [ -e "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE" ]
assert_file_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE"
assert [ -L "$BASH_IT/enabled/150---general.aliases.bash" ]
assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ]
assert [ -L "$BASH_IT/enabled/365---alias-completion.plugin.bash" ]
assert [ -L "$BASH_IT/enabled/350---bash-it.completion.bash" ]
assert [ -L "$BASH_IT/enabled/350---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/365---alias-completion.plugin.bash"
assert_link_exist "$BASH_IT/enabled/350---bash-it.completion.bash"
assert_link_exist "$BASH_IT/enabled/350---system.completion.bash"
}
@test "install: verify that a backup file is created" {
@ -68,8 +68,8 @@ function local_teardown {
./install.sh --silent
assert [ -e "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE" ]
assert [ -e "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.bak" ]
assert_file_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE"
assert_file_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.bak"
local md5_bak=$(md5sum "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.bak" | awk '{print $1}')

View File

@ -18,7 +18,7 @@ function local_setup {
lib_directory="$(cd "$(dirname "$0")" && pwd)"
# Use rsync to copy Bash-it to the temp folder
# rsync is faster than cp, since we can exclude the large ".git" folder
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../.. "$BASH_IT"
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../../.. "$BASH_IT"
rm -rf "$BASH_IT"/enabled
rm -rf "$BASH_IT"/aliases/enabled
@ -42,7 +42,7 @@ function local_teardown {
}
@test "uninstall: verify that the uninstall script exists" {
assert [ -e "$BASH_IT/uninstall.sh" ]
assert_file_exist "$BASH_IT/uninstall.sh"
}
@test "uninstall: run the uninstall script with an existing backup file" {
@ -56,9 +56,9 @@ function local_teardown {
assert_success
assert [ ! -e "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.uninstall" ]
assert [ ! -e "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.bak" ]
assert [ -e "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE" ]
assert_file_not_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.uninstall"
assert_file_not_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.bak"
assert_file_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE"
local md5_conf=$(md5sum "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE" | awk '{print $1}')
@ -75,9 +75,9 @@ function local_teardown {
assert_success
assert [ -e "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.uninstall" ]
assert [ ! -e "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.bak" ]
assert [ ! -e "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE" ]
assert_file_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.uninstall"
assert_file_not_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.bak"
assert_file_not_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE"
local md5_uninstall=$(md5sum "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE.uninstall" | awk '{print $1}')

View File

@ -13,7 +13,7 @@ function local_setup {
lib_directory="$(cd "$(dirname "$0")" && pwd)"
# Use rsync to copy Bash-it to the temp folder
# rsync is faster than cp, since we can exclude the large ".git" folder
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../.. "$BASH_IT"
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../../.. "$BASH_IT"
rm -rf "$BASH_IT"/enabled
rm -rf "$BASH_IT"/aliases/enabled
@ -52,135 +52,133 @@ function local_setup {
@test "helpers: bash-it help aliases ag" {
run bash-it help aliases "ag"
assert_line "0" "ag='ag --smart-case --pager=\"less -MIRFX'"
assert_line -n 0 "ag='ag --smart-case --pager=\"less -MIRFX'"
}
@test "helpers: bash-it help aliases without any aliases enabled" {
run bash-it help aliases
assert_line "0" ""
assert_line -n 0 ""
}
@test "helpers: bash-it help list aliases without any aliases enabled" {
run _help-list-aliases "$BASH_IT/aliases/available/ag.aliases.bash"
assert_line "0" "ag:"
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 [ -L "$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"
assert_line "0" "ag:"
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 [ -L "$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"
assert_line "0" "todo.txt-cli:"
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 [ -L "$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"
assert_line "0" "docker-compose:"
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 [ -L "$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"
assert_line "0" "ag:"
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 [ -L "$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 "0" "ag:"
assert_line -n 0 "ag:"
}
@test "helpers: bash-it help aliases one alias enabled in global directory" {
run bash-it enable alias "ag"
assert_line "0" 'ag enabled with priority 150.'
assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ]
assert_line -n 0 'ag enabled with priority 150.'
assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash"
run bash-it enable plugin "aws"
assert_line "0" 'aws enabled with priority 250.'
assert [ -L "$BASH_IT/enabled/250---aws.plugin.bash" ]
assert_line -n 0 'aws enabled with priority 250.'
assert_link_exist "$BASH_IT/enabled/250---aws.plugin.bash"
run bash-it help aliases
assert_line "0" "ag:"
assert_line "1" "ag='ag --smart-case --pager=\"less -MIRFX'"
assert_line -n 0 "ag:"
assert_line -n 1 "ag='ag --smart-case --pager=\"less -MIRFX'"
}
@test "helpers: enable the todo.txt-cli aliases through the bash-it function" {
run bash-it enable alias "todo.txt-cli"
assert_line "0" 'todo.txt-cli enabled with priority 150.'
assert [ -L "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" ]
assert_line -n 0 'todo.txt-cli enabled with priority 150.'
assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash"
}
@test "helpers: enable the curl aliases" {
run _enable-alias "curl"
assert_line "0" 'curl enabled with priority 150.'
assert [ -L "$BASH_IT/enabled/150---curl.aliases.bash" ]
assert_line -n 0 'curl enabled with priority 150.'
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 "0" 'apm enabled with priority 350.'
assert [ -L "$BASH_IT/enabled/350---apm.completion.bash" ]
assert_line -n 0 'apm enabled with priority 350.'
assert_link_exist "$BASH_IT/enabled/350---apm.completion.bash"
}
@test "helpers: enable the brew completion" {
run _enable-completion "brew"
assert_line "0" 'brew enabled with priority 350.'
assert [ -L "$BASH_IT/enabled/350---brew.completion.bash" ]
assert_line -n 0 'brew enabled with priority 350.'
assert_link_exist "$BASH_IT/enabled/350---brew.completion.bash"
}
@test "helpers: enable the node plugin" {
run _enable-plugin "node"
assert_line "0" 'node enabled with priority 250.'
assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ]
assert_equal "../plugins/available/node.plugin.bash" "`readlink $BASH_IT/enabled/250---node.plugin.bash`"
assert_line -n 0 'node enabled with priority 250.'
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 "0" 'node enabled with priority 250.'
assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ]
assert_line -n 0 'node enabled with priority 250.'
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 "0" 'node enabled with priority 250.'
assert_line "1" 'nvm enabled with priority 225.'
assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ]
assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
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"
}
@test "helpers: enable the foo-unkown and nvm plugins through the bash-it function" {
run bash-it enable plugin "foo-unknown" "nvm"
assert_line "0" 'sorry, foo-unknown does not appear to be an available plugin.'
assert_line "1" 'nvm enabled with priority 225.'
assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
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"
}
@test "helpers: enable the nvm plugin" {
run _enable-plugin "nvm"
assert_line "0" 'nvm enabled with priority 225.'
assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
}
@test "helpers: enable an unknown plugin" {
run _enable-plugin "unknown-foo"
assert_line "0" 'sorry, unknown-foo does not appear to be an available plugin.'
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" ]
@ -193,7 +191,7 @@ function local_setup {
@test "helpers: enable an unknown plugin through the bash-it function" {
run bash-it enable plugin "unknown-foo"
echo "${lines[@]}"
assert_line "0" 'sorry, unknown-foo does not appear to be an available plugin.'
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" ]
@ -205,116 +203,116 @@ function local_setup {
@test "helpers: disable a plugin that is not enabled" {
run _disable-plugin "sdkman"
assert_line "0" 'sorry, sdkman does not appear to be an enabled plugin.'
assert_line -n 0 'sorry, sdkman does not appear to be an enabled plugin.'
}
@test "helpers: enable and disable the nvm plugin" {
run _enable-plugin "nvm"
assert_line "0" 'nvm enabled with priority 225.'
assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
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" ]
run _disable-plugin "nvm"
assert_line "0" 'nvm disabled.'
assert_line -n 0 'nvm disabled.'
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 [ -L "$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 "0" 'nvm disabled.'
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" ]
}
@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 [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
run _disable-plugin "nvm"
assert_line "0" 'nvm disabled.'
assert_line -n 0 'nvm disabled.'
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 [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash"
run _enable-plugin "nvm"
assert_line "0" 'nvm is already enabled.'
assert [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
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" ]
}
@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 [ -L "$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 "0" 'nvm is already enabled.'
assert_line -n 0 'nvm is already enabled.'
assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ]
assert [ -L "$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" ]
}
@test "helpers: enable the nvm plugin twice" {
run _enable-plugin "nvm"
assert_line "0" 'nvm enabled with priority 225.'
assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert_line -n 0 'nvm enabled with priority 225.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
run _enable-plugin "nvm"
assert_line "0" 'nvm is already enabled.'
assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert_line -n 0 'nvm is already enabled.'
assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash"
}
@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 [ -L "$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 [ -L "$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 "0" 'Migrating plugin dirs.'
assert_line "1" 'dirs disabled.'
assert_line "2" 'dirs enabled with priority 250.'
assert_line "3" 'Migrating completion dirs.'
assert_line "4" 'dirs disabled.'
assert_line "5" 'dirs enabled with priority 350.'
assert_line "6" 'If any migration errors were reported, please try the following: reload && bash-it migrate'
assert_line -n 0 'Migrating plugin dirs.'
assert_line -n 1 'dirs disabled.'
assert_line -n 2 'dirs enabled with priority 250.'
assert_line -n 3 'Migrating completion dirs.'
assert_line -n 4 'dirs disabled.'
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 [ -L "$BASH_IT/enabled/350---dirs.completion.bash" ]
assert [ -L "$BASH_IT/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 [ -L "$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 [ -L "$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 [ -L "$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 [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
run _bash-it-migrate
assert_line "0" 'Migrating alias todo.txt-cli.'
assert_line "1" 'todo.txt-cli disabled.'
assert_line "2" 'todo.txt-cli enabled with priority 150.'
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 [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ]
assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ]
assert [ -L "$BASH_IT/enabled/150---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" ]
@ -322,22 +320,22 @@ function local_setup {
@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 [ -L "$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 [ -L "$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 [ -L "$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 [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
run _bash-it-migrate
assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ]
assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ]
assert [ -L "$BASH_IT/enabled/150---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" ]
@ -349,10 +347,10 @@ function local_setup {
@test "helpers: run the migrate command without anything to migrate" {
run _enable-plugin "ssh"
assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
run _bash-it-migrate
assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ]
assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash"
}
function __migrate_all_components() {
@ -430,36 +428,36 @@ function __migrate_all_components() {
@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 [ -L "$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 "0" 'Migrating plugin nvm.'
assert_line "1" 'nvm disabled.'
assert_line "2" 'nvm enabled with priority 225.'
assert_line "3" 'If any migration errors were reported, please try the following: reload && bash-it migrate'
assert_line "4" 'node enabled with priority 250.'
assert_line -n 0 'Migrating plugin nvm.'
assert_line -n 1 'nvm disabled.'
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 [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert [ -L "$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"
}
@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 [ -L "$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 [ -L "$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 "0" 'Migrating plugin node.'
assert_line "1" 'node disabled.'
assert_line "2" 'node enabled with priority 250.'
assert_line "3" 'Migrating plugin nvm.'
assert_line "4" 'nvm disabled.'
assert_line "5" 'nvm enabled with priority 225.'
assert_line "6" 'If any migration errors were reported, please try the following: reload && bash-it migrate'
assert_line "7" 'node disabled.'
assert_line -n 0 'Migrating plugin node.'
assert_line -n 1 'node disabled.'
assert_line -n 2 'node enabled with priority 250.'
assert_line -n 3 'Migrating plugin nvm.'
assert_line -n 4 'nvm disabled.'
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 [ -L "$BASH_IT/enabled/225---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" ]
}
@ -478,50 +476,50 @@ function __migrate_all_components() {
assert_equal "$available" "$enabled"
run _enable-alias "ag"
assert [ -L "$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)
assert_equal "0" "$enabled2"
assert [ -L "$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 [ -L "$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 [ -L "$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)
assert_equal "2" "$enabled"
run _enable-alias "ag"
assert [ -L "$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)
assert_equal "0" "$enabled2"
assert [ -L "$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 [ -L "$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 [ -L "$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)
assert_equal "2" "$enabled"
run _enable-alias "ag"
assert [ -L "$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)
assert_equal "0" "$enabled2"
assert [ -L "$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" {
@ -529,18 +527,18 @@ function __migrate_all_components() {
assert_equal "0" "$enabled"
run _enable-alias "ag"
assert [ -L "$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)
assert_equal "0" "$enabled2"
assert [ -L "$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 "0" 'ansible enabled with priority 150.'
assert [ -L "$BASH_IT/enabled/150---ansible.aliases.bash" ]
assert_line -n 0 'ansible enabled with priority 150.'
assert_link_exist "$BASH_IT/enabled/150---ansible.aliases.bash"
}
@test "helpers: describe the nvm plugin without enabling it" {
@ -549,22 +547,22 @@ function __migrate_all_components() {
@test "helpers: describe the nvm plugin after enabling it" {
run _enable-plugin "nvm"
assert_line "0" 'nvm enabled with priority 225.'
assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ]
assert_line -n 0 'nvm enabled with priority 225.'
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 [ -L "$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 [ -L "$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

@ -17,7 +17,7 @@ function local_setup {
lib_directory="$(cd "$(dirname "$0")" && pwd)"
# Use rsync to copy Bash-it to the temp folder
# rsync is faster than cp, since we can exclude the large ".git" folder
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../.. "$BASH_IT"
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../../.. "$BASH_IT"
rm -rf "$BASH_IT"/enabled
rm -rf "$BASH_IT"/aliases/enabled
@ -54,15 +54,15 @@ function local_setup {
run _bash-it-search 'ruby' 'gem' 'bundle' 'rake' 'rails' '--disable'
run _enable-alias 'rails'
run _bash-it-search 'ruby' 'gem' 'bundle' 'rake' 'rails'
assert_line "0" ' aliases => bundler ✓rails'
assert_line "1" ' plugins => chruby chruby-auto rails ruby'
assert_line "2" ' completions => bundler gem rake'
assert_line -n 0 ' aliases => bundler ✓rails'
assert_line -n 1 ' plugins => chruby chruby-auto rails ruby'
assert_line -n 2 ' completions => bundler gem rake'
}
@test "search: (all enabled) ruby gem bundle rake rails" {
run _bash-it-search 'ruby' 'gem' 'bundle' 'rake' '-chruby' 'rails' '--enable'
run _bash-it-search 'ruby' 'gem' 'bundle' 'rake' '-chruby' 'rails'
assert_line "0" ' aliases => ✓bundler ✓rails'
assert_line "1" ' plugins => ✓rails ✓ruby'
assert_line "2" ' completions => ✓bundler ✓gem ✓rake'
assert_line -n 0 ' aliases => ✓bundler ✓rails'
assert_line -n 1 ' plugins => ✓rails ✓ruby'
assert_line -n 2 ' completions => ✓bundler ✓gem ✓rake'
}

View File

@ -52,5 +52,5 @@ load ../../plugins/available/base.plugin
declare -r file="${BASH_IT_ROOT}/file"
touch $file
run buf $file
assert [ -e ${file}_$(date +%Y%m%d_%H%M%S) ]
assert_file_exist ${file}_$(date +%Y%m%d_%H%M%S)
}

View File

@ -10,7 +10,7 @@ function local_setup {
lib_directory="$(cd "$(dirname "$0")" && pwd)"
# Use rsync to copy Bash-it to the temp folder
# rsync is faster than cp, since we can exclude the large ".git" folder
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../.. "$BASH_IT"
rsync -qavrKL -d --delete-excluded --exclude=.git $lib_directory/../../.. "$BASH_IT"
rm -rf "$BASH_IT"/enabled
rm -rf "$BASH_IT"/aliases/enabled
@ -33,7 +33,7 @@ function local_teardown {
@test "plugins ruby: remove_gem is defined" {
run type remove_gem
assert_line 1 "remove_gem () "
assert_line -n 1 "remove_gem () "
}
@test "plugins ruby: PATH includes ~/.gem/ruby/bin" {

View File

@ -1,9 +1,8 @@
#!/usr/bin/env bash
test_directory="$(cd "$(dirname "$0")" && pwd)"
bats_executable="${test_directory}/../bats/bin/bats"
bats_executable="${test_directory}/../test_lib/bats-core/bin/bats"
[ ! -e $bats_executable ] && \
git clone --depth 1 https://github.com/sstephenson/bats.git ${test_directory}/../bats
git submodule init && git submodule update
if [ -z "${BASH_IT}" ]; then
export BASH_IT=$(cd ${test_directory} && dirname $(pwd))

View File

@ -13,6 +13,13 @@ if [ "$BASH_IT_ROOT" != "${BASH_IT_TEST_DIR}/root" ]; then
export BASH_IT=$BASH_IT_TEST_DIR
fi
export TEST_MAIN_DIR="${BATS_TEST_DIRNAME}/.."
export TEST_DEPS_DIR="${TEST_DEPS_DIR-${TEST_MAIN_DIR}/../test_lib}"
load "${TEST_DEPS_DIR}/bats-support/load.bash"
load "${TEST_DEPS_DIR}/bats-assert/load.bash"
load "${TEST_DEPS_DIR}/bats-file/load.bash"
local_setup() {
true
}
@ -33,76 +40,47 @@ teardown() {
rm -rf "${BASH_IT_TEST_DIR}"
}
assert() {
if ! "$@"; then
flunk "failed: $@"
fi
}
flunk() {
{ if [ "$#" -eq 0 ]; then cat -
else echo "$@"
fi
} | sed "s:${BASH_IT_TEST_DIR}:TEST_DIR:g" >&2
return 1
}
assert_success() {
if [ "$status" -ne 0 ]; then
flunk "command failed with exit status $status"
elif [ "$#" -gt 0 ]; then
assert_output "$1"
fi
}
assert_failure() {
if [ "$status" -eq 0 ]; then
flunk "expected failed exit status"
elif [ "$#" -gt 0 ]; then
assert_output "$1"
fi
}
assert_equal() {
if [ "$1" != "$2" ]; then
{ echo "expected: $1"
echo "actual: $2"
} | flunk
fi
}
assert_output() {
local expected
if [ $# -eq 0 ]; then expected="$(cat -)"
else expected="$1"
fi
assert_equal "$expected" "$output"
}
assert_line() {
if [ "$1" -ge 0 ] 2>/dev/null; then
assert_equal "$2" "${lines[$1]}"
else
local line
for line in "${lines[@]}"; do
if [ "$line" = "$1" ]; then return 0; fi
done
flunk "expected line \`$1'"
fi
}
refute_line() {
if [ "$1" -ge 0 ] 2>/dev/null; then
local num_lines="${#lines[@]}"
if [ "$1" -lt "$num_lines" ]; then
flunk "output has $num_lines lines"
# Fail and display path of the link if it does not exist. Also fails
# if the path exists, but is not a link.
# This function is the logical complement of `assert_file_not_exist'.
# There is no dedicated function for checking that a link does not exist.
#
# Globals:
# BATSLIB_FILE_PATH_REM
# BATSLIB_FILE_PATH_ADD
# Arguments:
# $1 - path
# Returns:
# 0 - link exists and is a link
# 1 - otherwise
# Outputs:
# STDERR - details, on failure
assert_link_exist() {
local -r file="$1"
local -r target="$2"
if [[ ! -L "$file" ]]; then
local -r rem="$BATSLIB_FILE_PATH_REM"
local -r add="$BATSLIB_FILE_PATH_ADD"
if [[ -e "$file" ]]; then
batslib_print_kv_single 4 'path' "${file/$rem/$add}" \
| batslib_decorate 'exists, but is not a link' \
| fail
else
batslib_print_kv_single 4 'path' "${file/$rem/$add}" \
| batslib_decorate 'link does not exist' \
| fail
fi
else
local line
for line in "${lines[@]}"; do
if [ "$line" = "$1" ]; then
flunk "expected to not find line \`$line'"
if [ -n "$target" ]; then
local link_target=''
link_target=$(readlink "$file")
if [[ "$link_target" != "$target" ]]; then
batslib_print_kv_single_or_multi 8 'path' "${file/$rem/$add}" \
'expected' "$target" \
'actual' "$link_target" \
| batslib_decorate 'link exists, but does not point to target file' \
| fail
fi
done
fi
fi
}

View File

@ -26,7 +26,7 @@ load ../../themes/base.theme
run battery_char
assert_success
assert_line "0" ""
assert_line -n 0 ""
run type -a battery_char
assert_line " echo -n"
@ -53,7 +53,7 @@ load ../../themes/base.theme
run battery_charge
assert_success
assert_line "0" ""
assert_line -n 0 ""
}
@test 'themes base: battery_charge should exist if battery plugin loaded' {

@ -0,0 +1 @@
Subproject commit 9f88b4207da750093baabc4e3f41bf68f0dd3630

@ -0,0 +1 @@
Subproject commit 85388685632f85d5a1c32e6bca2deec401964cf7

@ -0,0 +1 @@
Subproject commit 2fddb2b831d65cdf2e411f3b47f4677fbb15729c

@ -0,0 +1 @@
Subproject commit 004e707638eedd62e0481e8cdc9223ad471f12ee