Skip to content

Commit 0d18962

Browse files
committed
test: Fix tests
1 parent a9eee48 commit 0d18962

15 files changed

+240
-132
lines changed

pkg/lib/commands/do-link.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ do-link() {
2727
dir="$(util.readlink "$dir")"
2828
dir="${dir%/}"
2929

30+
if [ ! -d "$dir/.git" ]; then
31+
die "Package must be a Git repository"
32+
fi
3033

3134
local user="local"
3235
local repository="${dir##*/}"

pkg/lib/commands/do-list.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ do-list() {
66

77
for arg; do
88
case "$arg" in
9-
--outdated)
10-
flag_outdated='yes'
11-
;;
129
--simple)
1310
flag_simple='yes'
1411
;;

tests/do-link.bats

Lines changed: 87 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,30 @@ load 'util/init.sh'
2424
test_util.mock_command do-plumbing-link-completions
2525
test_util.mock_command do-plumbing-link-man
2626

27-
mkdir -p 'subdir/theta'
28-
do-link 'subdir/theta'
29-
mkdir 'theta'
27+
local pkg1='subdir/theta'
28+
local pkg2='theta'
29+
30+
mkdir -p "$pkg1"
31+
git -C "$pkg1" init
32+
do-link "$pkg1"
3033

31-
run do-link 'theta'
34+
mkdir "$pkg2"
35+
git -C "$pkg2" init
36+
run do-link "$pkg2"
3237

3338
assert_failure
3439
assert_line -n 0 -p "Package 'local/theta' is already present"
3540
}
3641

42+
@test "fails if not a Git repository" {
43+
mkdir -p "$BPM_ORIGIN_DIR/$pkg"
44+
45+
run do-link "$BPM_ORIGIN_DIR/$pkg"
46+
47+
assert_failure
48+
assert_line -n 0 -p "Package must be a Git repository"
49+
}
50+
3751
@test "fails if package already present (as erroneous file)" {
3852
test_util.mock_command do-plumbing-add-deps
3953
test_util.mock_command do-plumbing-link-bins
@@ -42,9 +56,11 @@ load 'util/init.sh'
4256

4357
mkdir -p touch "$BPM_PACKAGES_PATH/local"
4458
touch "$BPM_PACKAGES_PATH/local/theta"
59+
60+
test_util.create_pkg_dir 'theta'
4561
mkdir 'theta'
4662

47-
run do-link 'theta'
63+
run do-link "$BPM_ORIGIN_DIR/theta"
4864

4965
assert_failure
5066
assert_line -n 0 -p "Package 'local/theta' is already present"
@@ -56,12 +72,14 @@ load 'util/init.sh'
5672
test_util.mock_command do-plumbing-link-completions
5773
test_util.mock_command do-plumbing-link-man
5874

59-
mkdir 'package1'
75+
local dir='package1'
6076

61-
run do-link 'package1'
77+
test_util.create_pkg_dir "$dir"
78+
79+
run do-link "$BPM_ORIGIN_DIR/$dir"
6280

6381
assert_success
64-
assert [ "$(readlink -f $BPM_PACKAGES_PATH/local/package1)" = "$(readlink -f "$PWD/package1")" ]
82+
assert [ "$(readlink -f $BPM_PACKAGES_PATH/local/package1)" = "$(readlink -f "$BPM_ORIGIN_DIR/$dir")" ]
6583
}
6684

6785
@test "calls link-bins, link-completions, link-man and deps in order" {
@@ -70,16 +88,18 @@ load 'util/init.sh'
7088
test_util.mock_command do-plumbing-link-completions
7189
test_util.mock_command do-plumbing-link-man
7290

73-
mkdir 'package2'
91+
local dir='package2'
92+
93+
test_util.create_pkg_dir "$dir"
7494

75-
run do-link 'package2'
95+
run do-link "$BPM_ORIGIN_DIR/$dir"
7696

7797
assert_success
78-
assert_line -n 0 -e "Linking '/(.*)/bpm/cwd/package2'"
79-
assert_line -n 1 "do-plumbing-add-deps local/package2"
80-
assert_line -n 2 "do-plumbing-link-bins local/package2"
81-
assert_line -n 3 "do-plumbing-link-completions local/package2"
82-
assert_line -n 4 "do-plumbing-link-man local/package2"
98+
assert_line -n 0 -p "Linking '$BPM_ORIGIN_DIR/$dir'"
99+
assert_line -n 1 "do-plumbing-add-deps local/$dir"
100+
assert_line -n 2 "do-plumbing-link-bins local/$dir"
101+
assert_line -n 3 "do-plumbing-link-completions local/$dir"
102+
assert_line -n 4 "do-plumbing-link-man local/$dir"
83103

84104
}
85105

@@ -89,21 +109,25 @@ load 'util/init.sh'
89109
test_util.mock_command do-plumbing-link-completions
90110
test_util.mock_command do-plumbing-link-man
91111

92-
mkdir 'package2' 'package3'
112+
local dir1='package2'
113+
local dir2='package3'
93114

94-
run do-link 'package2' 'package3'
115+
test_util.create_pkg_dir "$dir1"
116+
test_util.create_pkg_dir "$dir2"
117+
118+
run do-link "$BPM_ORIGIN_DIR/$dir1" "$BPM_ORIGIN_DIR/$dir2"
95119

96120
assert_success
97-
assert_line -n 0 -e "Linking '/(.*)/bpm/cwd/package2'"
98-
assert_line -n 1 "do-plumbing-add-deps local/package2"
99-
assert_line -n 2 "do-plumbing-link-bins local/package2"
100-
assert_line -n 3 "do-plumbing-link-completions local/package2"
101-
assert_line -n 4 "do-plumbing-link-man local/package2"
102-
assert_line -n 5 -e "Linking '/(.*)/bpm/cwd/package3'"
103-
assert_line -n 6 "do-plumbing-add-deps local/package3"
104-
assert_line -n 7 "do-plumbing-link-bins local/package3"
105-
assert_line -n 8 "do-plumbing-link-completions local/package3"
106-
assert_line -n 9 "do-plumbing-link-man local/package3"
121+
assert_line -n 0 -p "Linking '$BPM_ORIGIN_DIR/$dir1'"
122+
assert_line -n 1 "do-plumbing-add-deps local/$dir1"
123+
assert_line -n 2 "do-plumbing-link-bins local/$dir1"
124+
assert_line -n 3 "do-plumbing-link-completions local/$dir1"
125+
assert_line -n 4 "do-plumbing-link-man local/$dir1"
126+
assert_line -n 5 -p "Linking '$BPM_ORIGIN_DIR/$dir2'"
127+
assert_line -n 6 "do-plumbing-add-deps local/$dir2"
128+
assert_line -n 7 "do-plumbing-link-bins local/$dir2"
129+
assert_line -n 8 "do-plumbing-link-completions local/$dir2"
130+
assert_line -n 9 "do-plumbing-link-man local/$dir2"
107131

108132
}
109133

@@ -113,15 +137,17 @@ load 'util/init.sh'
113137
test_util.mock_command do-plumbing-link-completions
114138
test_util.mock_command do-plumbing-link-man
115139

116-
mkdir 'package2'
140+
local dir='package2'
141+
142+
test_util.create_pkg_dir "$dir"
117143

118-
run do-link --no-deps 'package2'
144+
run do-link --no-deps "$BPM_ORIGIN_DIR/$dir"
119145

120146
assert_success
121-
assert_line -n 0 -e "Linking '/(.*)/bpm/cwd/package2'"
122-
assert_line -n 1 "do-plumbing-link-bins local/package2"
123-
assert_line -n 2 "do-plumbing-link-completions local/package2"
124-
assert_line -n 3 "do-plumbing-link-man local/package2"
147+
assert_line -n 0 -p "Linking '$BPM_ORIGIN_DIR/$dir'"
148+
assert_line -n 1 "do-plumbing-link-bins local/$dir"
149+
assert_line -n 2 "do-plumbing-link-completions local/$dir"
150+
assert_line -n 3 "do-plumbing-link-man local/$dir"
125151
}
126152

127153

@@ -131,9 +157,11 @@ load 'util/init.sh'
131157
test_util.mock_command do-plumbing-link-completions
132158
test_util.mock_command do-plumbing-link-man
133159

134-
mkdir 'package2'
160+
local dir='package2'
161+
162+
test_util.create_pkg_dir "$dir"
135163

136-
run do-link --no-deps 'package2'
164+
run do-link --no-deps "$BPM_ORIGIN_DIR/$dir"
137165

138166
assert_success
139167
refute_line "do-plumbing-add-deps local/package2"
@@ -145,9 +173,11 @@ load 'util/init.sh'
145173
test_util.mock_command do-plumbing-link-completions
146174
test_util.mock_command do-plumbing-link-man
147175

148-
mkdir 'package2'
176+
local dir='package2'
149177

150-
run do-link 'package2' --no-deps
178+
test_util.create_pkg_dir "$dir"
179+
180+
run do-link "$BPM_ORIGIN_DIR/$dir" --no-deps
151181

152182
assert_success
153183
refute_line "do-plumbing-add-deps local/package2"
@@ -159,13 +189,15 @@ load 'util/init.sh'
159189
test_util.mock_command do-plumbing-link-completions
160190
test_util.mock_command do-plumbing-link-man
161191

162-
mkdir 'package3'
163-
cd 'package3'
192+
local dir='package2'
193+
194+
test_util.create_pkg_dir "$dir"
164195

196+
cd "$BPM_ORIGIN_DIR/$dir"
165197
run do-link .
166198

167199
assert_success
168-
assert [ "$(readlink -f "$BPM_PACKAGES_PATH/local/package3")" = "$(readlink -f "$PWD")" ]
200+
assert [ "$(readlink -f "$BPM_PACKAGES_PATH/local/$dir")" = "$(readlink -f "$BPM_ORIGIN_DIR/$dir")" ]
169201
}
170202

171203
@test "links the parent directory" {
@@ -174,13 +206,18 @@ load 'util/init.sh'
174206
test_util.mock_command do-plumbing-link-completions
175207
test_util.mock_command do-plumbing-link-man
176208

177-
mkdir -p 'sierra/tango'
178-
cd 'sierra/tango'
209+
local dir='package2'
210+
211+
test_util.create_pkg_dir "$dir"
212+
213+
cd "$BPM_ORIGIN_DIR/$dir"
214+
mkdir -p 'tango'
215+
cd 'tango'
179216

180217
run do-link ..
181218

182219
assert_success
183-
assert [ "$(readlink -f "$BPM_PACKAGES_PATH/local/sierra")" = "$(readlink -f "$PWD/..")" ]
220+
assert [ "$(readlink -f "$BPM_PACKAGES_PATH/local/$dir")" = "$(readlink -f "$BPM_ORIGIN_DIR/$dir")" ]
184221
}
185222

186223
@test "links an arbitrary complex relative path" {
@@ -189,9 +226,13 @@ load 'util/init.sh'
189226
test_util.mock_command do-plumbing-link-completions
190227
test_util.mock_command do-plumbing-link-man
191228

192-
mkdir 'package3'
193-
run do-link ./package3/.././package3
229+
local dir='package2'
230+
231+
test_util.create_pkg_dir "parent/$dir"
232+
233+
cd "$BPM_ORIGIN_DIR/parent"
234+
run do-link "./$dir/.././$dir"
194235

195236
assert_success
196-
assert [ "$(readlink -f "$BPM_PACKAGES_PATH/local/package3")" = "$(readlink -f "$PWD/package3")" ]
237+
assert [ "$(readlink -f "$BPM_PACKAGES_PATH/local/$dir")" = "$(readlink -f "$BPM_ORIGIN_DIR/parent/$dir")" ]
197238
}

tests/do-package-path.bats

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ load 'util/init.sh'
77
local pkg='username/package'
88

99
test_util.create_package "$pkg"
10-
test_util.fake_install "$pkg"
10+
test_util.fake_add "$pkg"
1111

1212
run bpm-package-path "$pkg"
1313

@@ -20,7 +20,7 @@ load 'util/init.sh'
2020
local pkg='username/package'
2121

2222
test_util.create_package "$pkg"
23-
test_util.fake_install "$pkg"
23+
test_util.fake_add "$pkg"
2424

2525
run bpm-package-path "$site/$pkg"
2626

@@ -33,7 +33,7 @@ load 'util/init.sh'
3333
local pkg='username/package'
3434

3535
test_util.create_package "$pkg"
36-
test_util.fake_install "$pkg"
36+
test_util.fake_add "$pkg"
3737

3838
run bpm-package-path "https://$site/$pkg"
3939

@@ -46,7 +46,7 @@ load 'util/init.sh'
4646
local pkg='username/package'
4747

4848
test_util.create_package "$pkg"
49-
test_util.fake_install "$pkg"
49+
test_util.fake_add "$pkg"
5050

5151
run bpm-package-path "other/package"
5252

tests/do-plumbing-add-deps.bats

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ load 'util/init.sh'
1111
test_util.setup_pkg "$pkg"; {
1212
:
1313
}; test_util.finish_pkg
14-
test_util.fake_install "$pkg"
14+
test_util.fake_add "$pkg"
1515

1616
test_util.mock_command 'do-add'
1717
run do-plumbing-add-deps "$site/$pkg"
@@ -29,7 +29,7 @@ load 'util/init.sh'
2929
test_util.setup_pkg "$pkg"; {
3030
echo 'DEPS=user/dep1:user/dep2' > 'package.sh'
3131
}; test_util.finish_pkg
32-
test_util.fake_install "$pkg"
32+
test_util.fake_add "$pkg"
3333

3434
run do-plumbing-add-deps "$site/$pkg"
3535

@@ -47,7 +47,7 @@ load 'util/init.sh'
4747
test_util.setup_pkg "$pkg"; {
4848
echo 'dependencies = [ "user/dep1", "user/dep2" ]' > 'bpm.toml'
4949
}; test_util.finish_pkg
50-
test_util.fake_install "$pkg"
50+
test_util.fake_add "$pkg"
5151

5252
run do-plumbing-add-deps "$site/$pkg"
5353

@@ -66,7 +66,7 @@ load 'util/init.sh'
6666
echo 'DEPS=user/bad_dep' > 'package.sh'
6767
echo 'dependencies = [ "user/good_dep" ]' > 'bpm.toml'
6868
}; test_util.finish_pkg
69-
test_util.fake_install "$pkg"
69+
test_util.fake_add "$pkg"
7070

7171
run do-plumbing-add-deps "$site/$pkg"
7272

0 commit comments

Comments
 (0)