Skip to content

Commit 5210707

Browse files
committed
Test cases for loading from global directory
1 parent fb6fcae commit 5210707

File tree

5 files changed

+115
-15
lines changed

5 files changed

+115
-15
lines changed

lib/helpers.bash

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,6 @@ function _load_bash_it_files() {
1818
fi
1919
done
2020
fi
21-
22-
# In the new structure
23-
if [ -d "${BASH_IT}/enabled" ]
24-
then
25-
declare suffix
26-
suffix=$(echo "$subdirectory" | sed -e 's/plugins/plugin/g')
27-
28-
FILES="${BASH_IT}/enabled/*.${suffix}.bash"
29-
for config_file in $FILES
30-
do
31-
if [ -e "${config_file}" ]; then
32-
source $config_file
33-
fi
34-
done
35-
fi
3621
}
3722

3823
# Function for reloading aliases

test/bash_it/bash_it.bats

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ function local_setup {
1515
rm -rf "$BASH_IT"/completion/enabled
1616
rm -rf "$BASH_IT"/plugins/enabled
1717

18+
cp -r "$BASH_IT/test/fixtures/bash_it/aliases" "$BASH_IT"
19+
cp -r "$BASH_IT/test/fixtures/bash_it/plugins" "$BASH_IT"
20+
1821
# Don't pollute the user's actual $HOME directory
1922
# Use a test home directory instead
2023
export BASH_IT_TEST_CURRENT_HOME="${HOME}"
@@ -31,6 +34,109 @@ function local_teardown {
3134
assert_equal "${BASH_IT_TEST_CURRENT_HOME}" "${HOME}"
3235
}
3336

37+
@test "bash-it: verify that the test fixture is available" {
38+
assert [ -e "$BASH_IT/aliases/available/a.aliases.bash" ]
39+
assert [ -e "$BASH_IT/aliases/available/b.aliases.bash" ]
40+
}
41+
42+
@test "bash-it: load aliases in order" {
43+
mkdir -p $BASH_IT/aliases/enabled
44+
mkdir -p $BASH_IT/plugins/enabled
45+
46+
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
47+
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
48+
49+
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/150---a.aliases.bash
50+
assert [ -L "$BASH_IT/aliases/enabled/150---a.aliases.bash" ]
51+
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash
52+
assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ]
53+
54+
# The `test_alias` alias should not exist
55+
run alias test_alias &> /dev/null
56+
assert_failure
57+
58+
load "$BASH_IT/bash_it.sh"
59+
60+
run alias test_alias &> /dev/null
61+
assert_success
62+
assert_line "0" "alias test_alias='b'"
63+
}
64+
65+
@test "bash-it: load aliases in priority order" {
66+
mkdir -p $BASH_IT/aliases/enabled
67+
mkdir -p $BASH_IT/plugins/enabled
68+
69+
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
70+
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
71+
72+
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/175---a.aliases.bash
73+
assert [ -L "$BASH_IT/aliases/enabled/175---a.aliases.bash" ]
74+
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash
75+
assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ]
76+
77+
# The `test_alias` alias should not exist
78+
run alias test_alias &> /dev/null
79+
assert_failure
80+
81+
load "$BASH_IT/bash_it.sh"
82+
83+
run alias test_alias &> /dev/null
84+
assert_success
85+
assert_line "0" "alias test_alias='a'"
86+
}
87+
88+
@test "bash-it: load aliases and plugins in priority order" {
89+
mkdir -p $BASH_IT/aliases/enabled
90+
mkdir -p $BASH_IT/plugins/enabled
91+
92+
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
93+
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
94+
95+
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/150---a.aliases.bash
96+
assert [ -L "$BASH_IT/aliases/enabled/150---a.aliases.bash" ]
97+
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash
98+
assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ]
99+
ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/250---c.plugin.bash
100+
assert [ -L "$BASH_IT/plugins/enabled/250---c.plugin.bash" ]
101+
102+
# The `test_alias` alias should not exist
103+
run alias test_alias &> /dev/null
104+
assert_failure
105+
106+
load "$BASH_IT/bash_it.sh"
107+
108+
run alias test_alias &> /dev/null
109+
assert_success
110+
assert_line "0" "alias test_alias='c'"
111+
}
112+
113+
@test "bash-it: load aliases and plugins in priority order, with one alias higher than plugins" {
114+
mkdir -p $BASH_IT/aliases/enabled
115+
mkdir -p $BASH_IT/plugins/enabled
116+
117+
ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash
118+
assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ]
119+
120+
ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/350---a.aliases.bash
121+
assert [ -L "$BASH_IT/aliases/enabled/350---a.aliases.bash" ]
122+
ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash
123+
assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ]
124+
ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/250---c.plugin.bash
125+
assert [ -L "$BASH_IT/plugins/enabled/250---c.plugin.bash" ]
126+
127+
# The `test_alias` alias should not exist
128+
run alias test_alias &> /dev/null
129+
assert_failure
130+
131+
load "$BASH_IT/bash_it.sh"
132+
133+
run alias test_alias &> /dev/null
134+
assert_success
135+
# This will be c, loaded from the c plugin, since the individual directories
136+
# are loaded one by one.
137+
assert_line "0" "alias test_alias='c'"
138+
}
139+
34140
@test "bash-it: load enabled aliases from new structure, priority-based" {
35141
mkdir -p $BASH_IT/enabled
36142
ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env bash
2+
3+
alias test_alias="a"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env bash
2+
3+
alias test_alias="b"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env bash
2+
3+
alias test_alias="c"

0 commit comments

Comments
 (0)