Test cases for loading from global directory

pull/1043/head
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

@ -18,21 +18,6 @@ function _load_bash_it_files() {
fi fi
done done
fi fi
# In the new structure
if [ -d "${BASH_IT}/enabled" ]
then
declare suffix
suffix=$(echo "$subdirectory" | sed -e 's/plugins/plugin/g')
FILES="${BASH_IT}/enabled/*.${suffix}.bash"
for config_file in $FILES
do
if [ -e "${config_file}" ]; then
source $config_file
fi
done
fi
} }
# Function for reloading aliases # Function for reloading aliases

View File

@ -15,6 +15,9 @@ function local_setup {
rm -rf "$BASH_IT"/completion/enabled rm -rf "$BASH_IT"/completion/enabled
rm -rf "$BASH_IT"/plugins/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 # Don't pollute the user's actual $HOME directory
# Use a test home directory instead # Use a test home directory instead
export BASH_IT_TEST_CURRENT_HOME="${HOME}" export BASH_IT_TEST_CURRENT_HOME="${HOME}"
@ -31,6 +34,109 @@ function local_teardown {
assert_equal "${BASH_IT_TEST_CURRENT_HOME}" "${HOME}" 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" { @test "bash-it: load enabled aliases from new structure, priority-based" {
mkdir -p $BASH_IT/enabled mkdir -p $BASH_IT/enabled
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash

View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
alias test_alias="a"

View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
alias test_alias="b"

View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
alias test_alias="c"