Test cases for loading from global directory

This commit is contained in:
Nils Winkler
2017-09-15 08:10:17 +02:00
parent fb6fcaeb06
commit 5210707da8
5 changed files with 115 additions and 15 deletions

View File

@@ -15,6 +15,9 @@ function local_setup {
rm -rf "$BASH_IT"/completion/enabled
rm -rf "$BASH_IT"/plugins/enabled
cp -r "$BASH_IT/test/fixtures/bash_it/aliases" "$BASH_IT"
cp -r "$BASH_IT/test/fixtures/bash_it/plugins" "$BASH_IT"
# Don't pollute the user's actual $HOME directory
# Use a test home directory instead
export BASH_IT_TEST_CURRENT_HOME="${HOME}"
@@ -31,6 +34,109 @@ function local_teardown {
assert_equal "${BASH_IT_TEST_CURRENT_HOME}" "${HOME}"
}
@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" ]
}
@test "bash-it: load aliases in order" {
mkdir -p $BASH_IT/aliases/enabled
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" ]
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" ]
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" ]
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
assert_failure
load "$BASH_IT/bash_it.sh"
run alias test_alias &> /dev/null
assert_success
assert_line "0" "alias test_alias='b'"
}
@test "bash-it: load aliases in priority order" {
mkdir -p $BASH_IT/aliases/enabled
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" ]
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" ]
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" ]
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
assert_failure
load "$BASH_IT/bash_it.sh"
run alias test_alias &> /dev/null
assert_success
assert_line "0" "alias test_alias='a'"
}
@test "bash-it: load aliases and plugins in priority order" {
mkdir -p $BASH_IT/aliases/enabled
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" ]
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" ]
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" ]
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" ]
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
assert_failure
load "$BASH_IT/bash_it.sh"
run alias test_alias &> /dev/null
assert_success
assert_line "0" "alias test_alias='c'"
}
@test "bash-it: load aliases and plugins in priority order, with one alias higher than plugins" {
mkdir -p $BASH_IT/aliases/enabled
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" ]
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" ]
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" ]
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" ]
# The `test_alias` alias should not exist
run alias test_alias &> /dev/null
assert_failure
load "$BASH_IT/bash_it.sh"
run alias test_alias &> /dev/null
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'"
}
@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