@@ -24,16 +24,30 @@ load 'util/init.sh'
24
24
test_util.mock_command do-plumbing-link-completions
25
25
test_util.mock_command do-plumbing-link-man
26
26
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 "
30
33
31
- run do-link ' theta'
34
+ mkdir " $pkg2 "
35
+ git -C " $pkg2 " init
36
+ run do-link " $pkg2 "
32
37
33
38
assert_failure
34
39
assert_line -n 0 -p " Package 'local/theta' is already present"
35
40
}
36
41
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
+
37
51
@test " fails if package already present (as erroneous file)" {
38
52
test_util.mock_command do-plumbing-add-deps
39
53
test_util.mock_command do-plumbing-link-bins
@@ -42,9 +56,11 @@ load 'util/init.sh'
42
56
43
57
mkdir -p touch " $BPM_PACKAGES_PATH /local"
44
58
touch " $BPM_PACKAGES_PATH /local/theta"
59
+
60
+ test_util.create_pkg_dir ' theta'
45
61
mkdir ' theta'
46
62
47
- run do-link ' theta'
63
+ run do-link " $BPM_ORIGIN_DIR / theta"
48
64
49
65
assert_failure
50
66
assert_line -n 0 -p " Package 'local/theta' is already present"
@@ -56,12 +72,14 @@ load 'util/init.sh'
56
72
test_util.mock_command do-plumbing-link-completions
57
73
test_util.mock_command do-plumbing-link-man
58
74
59
- mkdir ' package1'
75
+ local dir= ' package1'
60
76
61
- run do-link ' package1'
77
+ test_util.create_pkg_dir " $dir "
78
+
79
+ run do-link " $BPM_ORIGIN_DIR /$dir "
62
80
63
81
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 " ) " ]
65
83
}
66
84
67
85
@test " calls link-bins, link-completions, link-man and deps in order" {
@@ -70,16 +88,18 @@ load 'util/init.sh'
70
88
test_util.mock_command do-plumbing-link-completions
71
89
test_util.mock_command do-plumbing-link-man
72
90
73
- mkdir ' package2'
91
+ local dir=' package2'
92
+
93
+ test_util.create_pkg_dir " $dir "
74
94
75
- run do-link ' package2 '
95
+ run do-link " $BPM_ORIGIN_DIR / $dir "
76
96
77
97
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 "
83
103
84
104
}
85
105
@@ -89,21 +109,25 @@ load 'util/init.sh'
89
109
test_util.mock_command do-plumbing-link-completions
90
110
test_util.mock_command do-plumbing-link-man
91
111
92
- mkdir ' package2' ' package3'
112
+ local dir1=' package2'
113
+ local dir2=' package3'
93
114
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 "
95
119
96
120
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 "
107
131
108
132
}
109
133
@@ -113,15 +137,17 @@ load 'util/init.sh'
113
137
test_util.mock_command do-plumbing-link-completions
114
138
test_util.mock_command do-plumbing-link-man
115
139
116
- mkdir ' package2'
140
+ local dir=' package2'
141
+
142
+ test_util.create_pkg_dir " $dir "
117
143
118
- run do-link --no-deps ' package2 '
144
+ run do-link --no-deps " $BPM_ORIGIN_DIR / $dir "
119
145
120
146
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 "
125
151
}
126
152
127
153
@@ -131,9 +157,11 @@ load 'util/init.sh'
131
157
test_util.mock_command do-plumbing-link-completions
132
158
test_util.mock_command do-plumbing-link-man
133
159
134
- mkdir ' package2'
160
+ local dir=' package2'
161
+
162
+ test_util.create_pkg_dir " $dir "
135
163
136
- run do-link --no-deps ' package2 '
164
+ run do-link --no-deps " $BPM_ORIGIN_DIR / $dir "
137
165
138
166
assert_success
139
167
refute_line " do-plumbing-add-deps local/package2"
@@ -145,9 +173,11 @@ load 'util/init.sh'
145
173
test_util.mock_command do-plumbing-link-completions
146
174
test_util.mock_command do-plumbing-link-man
147
175
148
- mkdir ' package2'
176
+ local dir= ' package2'
149
177
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
151
181
152
182
assert_success
153
183
refute_line " do-plumbing-add-deps local/package2"
@@ -159,13 +189,15 @@ load 'util/init.sh'
159
189
test_util.mock_command do-plumbing-link-completions
160
190
test_util.mock_command do-plumbing-link-man
161
191
162
- mkdir ' package3'
163
- cd ' package3'
192
+ local dir=' package2'
193
+
194
+ test_util.create_pkg_dir " $dir "
164
195
196
+ cd " $BPM_ORIGIN_DIR /$dir "
165
197
run do-link .
166
198
167
199
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 " ) " ]
169
201
}
170
202
171
203
@test " links the parent directory" {
@@ -174,13 +206,18 @@ load 'util/init.sh'
174
206
test_util.mock_command do-plumbing-link-completions
175
207
test_util.mock_command do-plumbing-link-man
176
208
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'
179
216
180
217
run do-link ..
181
218
182
219
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 " ) " ]
184
221
}
185
222
186
223
@test " links an arbitrary complex relative path" {
@@ -189,9 +226,13 @@ load 'util/init.sh'
189
226
test_util.mock_command do-plumbing-link-completions
190
227
test_util.mock_command do-plumbing-link-man
191
228
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 "
194
235
195
236
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 " ) " ]
197
238
}
0 commit comments