@@ -15,6 +15,9 @@ function local_setup {
15
15
rm -rf " $BASH_IT " /completion/enabled
16
16
rm -rf " $BASH_IT " /plugins/enabled
17
17
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
+
18
21
# Don't pollute the user's actual $HOME directory
19
22
# Use a test home directory instead
20
23
export BASH_IT_TEST_CURRENT_HOME=" ${HOME} "
@@ -31,6 +34,109 @@ function local_teardown {
31
34
assert_equal " ${BASH_IT_TEST_CURRENT_HOME} " " ${HOME} "
32
35
}
33
36
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
+
34
140
@test " bash-it: load enabled aliases from new structure, priority-based" {
35
141
mkdir -p $BASH_IT /enabled
36
142
ln -s $BASH_IT /aliases/available/atom.aliases.bash $BASH_IT /enabled/150---atom.aliases.bash
0 commit comments