@@ -19,7 +19,7 @@ var bin = path.join('..', '..', 'node_modules', '.bin', 'remark');
1919var source = ' remark-validate-links remark-validate-links';
2020
2121test('remark-validate-links', function (t) {
22− t.plan(8);
22+ t.plan(12);
2323
2424 t.throws(
2525 function () {
@@ -29,18 +29,65 @@ test('remark-validate-links', function (t) {
2929 'should throw an error when not on the CLI'
3030 );
3131
32+ t.test('should throw on unparsable git repositories', function (st) {
33+ st.plan(1);
34+
35+ execa(bin, [
36+ '--no-config',
37+ '--no-ignore',
38+ '--use',
39+ '../..=repository:"invalid:shortcode"',
40+ 'definitions.md'
41+ ]).then(function () {
42+ st.fail('should not be successful');
43+ }, function (err) {
44+ st.equal(
45+ strip(err.stderr).split('\n').slice(0, 2).join('\n'),
46+ [
47+ 'definitions.md',
48+ ' 1:1 error Error: remark-validate-links cannot parse `repository` (`invalid:shortcode`)'
49+ ].join('\n'),
50+ 'should report an error'
51+ );
52+ });
53+ });
54+
55+ t.test('should throw on gist repositories', function (st) {
56+ st.plan(1);
57+
58+ execa(bin, [
59+ '--no-config',
60+ '--no-ignore',
61+ '--use',
62+ '../..=repository:"gist:wooorm/8504606"',
63+ 'definitions.md'
64+ ]).then(function () {
65+ st.fail('should not be successful');
66+ }, function (err) {
67+ st.equal(
68+ strip(err.stderr).split('\n').slice(0, 2).join('\n'),
69+ [
70+ 'definitions.md',
71+ ' 1:1 error Error: remark-validate-links does not support gist repositories'
72+ ].join('\n'),
73+ 'should report an error'
74+ );
75+ });
76+ });
77+
3278 t.test('should ignore unfound files', function (st) {
33− st.plan(2);
79+ st.plan(1);
3480
35− execa.stderr(bin, [
81+ execa(bin, [
3682 '--no-config',
3783 '--no-ignore',
3884 '--use',
39− '../../index',
85+ '../..',
4086 'definitions.md',
4187 'FOOOO'
42− ]).catch(function (err) {
43− st.equal(err.code, 1, 'should exit with `1`');
88+ ]).then(function () {
89+ st.fail('should not be successful');
90+ }, function (err) {
4491 st.equal(
4592 strip(err.stderr),
4693 [
@@ -53,7 +100,7 @@ test('remark-validate-links', function (t) {
53100 '2 messages (✖ 1 error, ⚠ 1 warning)',
54101 ''
55102 ].join('\n'),
56− 'should report'
103+ 'should report an error'
57104 );
58105 });
59106 });
@@ -61,85 +108,85 @@ test('remark-validate-links', function (t) {
61108 t.test('should work when not all files are given', function (st) {
62109 st.plan(1);
63110
64− execa.stderr(bin, [
111+ execa(bin, [
65112 '--no-config',
66113 '--no-ignore',
67114 '--use',
68− '../../index',
69− 'example.md'
70− ]).then(function (stderr) {
115+ '../..',
116+ 'github.md'
117+ ]).then(function (result) {
71118 st.equal(
72− strip(stderr),
119+ strip(result.stderr),
73120 [
74− 'example.md',
75− ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
76− ' 23:10-23:37 warning Link to unknown file: `examples/world.md` ' + source,
77− ' 25:10-25:35 warning Link to unknown file: `examples/world.md` ' + source,
78− ' 37:10-37:42 warning Link to unknown heading in `examples/example.md`: `world`' + source,
79− ' 39:10-39:40 warning Link to unknown heading in `examples/example.md`: `world`' + source,
80− ' 45:10-45:40 warning Link to unknown file: `examples/world.md` ' + source,
81− ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
82− ' 47:10-47:38 warning Link to unknown file: `examples/world.md` ' + source,
83− ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
121+ 'github.md',
122+ ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
123+ ' 23:10-23:37 warning Link to unknown file: `examples/world.md` ' + source,
124+ ' 25:10-25:35 warning Link to unknown file: `examples/world.md` ' + source,
125+ ' 37:10-37:41 warning Link to unknown heading in `examples/github.md`: `world`' + source,
126+ ' 39:10-39:39 warning Link to unknown heading in `examples/github.md`: `world`' + source,
127+ ' 45:10-45:40 warning Link to unknown file: `examples/world.md` ' + source,
128+ ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
129+ ' 47:10-47:38 warning Link to unknown file: `examples/world.md` ' + source,
130+ ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
84131 '',
85132 '⚠ 9 warnings'
86133 ].join('\n'),
87134 'should report'
88135 );
89− });
136+ }, st.error);
90137 });
91138
92139 t.test('should work when all files are given', function (st) {
93140 st.plan(1);
94141
95− execa.stderr(bin, [
142+ execa(bin, [
96143 '--no-config',
97144 '--no-ignore',
98145 '--use',
99− '../../index',
100− 'example.md',
101− 'examples/example.md'
102− ]).then(function (stderr) {
146+ '../..',
147+ 'github.md',
148+ 'examples/github.md'
149+ ]).then(function (result) {
103150 st.equal(
104− strip(stderr),
151+ strip(result.stderr),
105152 [
106− 'example.md',
107− ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
108− ' 23:10-23:37 warning Link to unknown file: `examples/world.md` ' + source,
109− ' 25:10-25:35 warning Link to unknown file: `examples/world.md` ' + source,
110− ' 37:10-37:42 warning Link to unknown heading in `examples/example.md`: `world`' + source,
111− ' 39:10-39:40 warning Link to unknown heading in `examples/example.md`: `world`' + source,
112− ' 45:10-45:40 warning Link to unknown file: `examples/world.md` ' + source,
113− ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
114− ' 47:10-47:38 warning Link to unknown file: `examples/world.md` ' + source,
115− ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
153+ 'examples/github.md',
154+ ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
155+ ' 19:10-19:29 warning Link to unknown file: `world.md` ' + source,
156+ ' 29:10-29:33 warning Link to unknown heading in `github.md`: `world` ' + source,
157+ ' 35:10-35:32 warning Link to unknown file: `world.md` ' + source,
158+ ' 35:10-35:32 warning Link to unknown heading in `world.md`: `hello` ' + source,
116159 '',
117− 'examples/example.md',
118− ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
119− ' 19:10-19:29 warning Link to unknown file: `world.md` ' + source,
120− ' 29:10-29:34 warning Link to unknown heading in `example.md`: `world` ' + source,
121− ' 35:10-35:32 warning Link to unknown file: `world.md` ' + source,
122− ' 35:10-35:32 warning Link to unknown heading in `world.md`: `hello` ' + source,
160+ 'github.md',
161+ ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
162+ ' 23:10-23:37 warning Link to unknown file: `examples/world.md` ' + source,
163+ ' 25:10-25:35 warning Link to unknown file: `examples/world.md` ' + source,
164+ ' 37:10-37:41 warning Link to unknown heading in `examples/github.md`: `world`' + source,
165+ ' 39:10-39:39 warning Link to unknown heading in `examples/github.md`: `world`' + source,
166+ ' 45:10-45:40 warning Link to unknown file: `examples/world.md` ' + source,
167+ ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
168+ ' 47:10-47:38 warning Link to unknown file: `examples/world.md` ' + source,
169+ ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
123170 '',
124171 '⚠ 14 warnings'
125172 ].join('\n'),
126173 'should report'
127174 );
128− });
175+ }, st.error);
129176 });
130177
131178 t.test('should work with definitions', function (st) {
132179 st.plan(1);
133180
134− execa.stderr(bin, [
181+ execa(bin, [
135182 '--no-config',
136183 '--no-ignore',
137184 '--use',
138− '../../index',
185+ '../..',
139186 'definitions.md'
140− ]).then(function (stderr) {
187+ ]).then(function (result) {
141188 st.equal(
142− strip(stderr),
189+ strip(result.stderr),
143190 [
144191 'definitions.md',
145192 ' 5:12-5:21 warning Link to unknown heading: `world`' + source,
@@ -148,62 +195,62 @@ test('remark-validate-links', function (t) {
148195 ].join('\n'),
149196 'should report'
150197 );
151− });
198+ }, st.error);
152199 });
153200
154201 t.test('should work on GitHub URLs when given a repo', function (st) {
155202 st.plan(1);
156203
157− execa.stderr(bin, [
204+ execa(bin, [
158205 '--no-config',
159206 '--no-ignore',
160207 '--use',
161− '../../index=repository:"wooorm/test"',
162− 'example.md',
163− 'examples/example.md'
164− ]).then(function (stderr) {
208+ '../..=repository:"wooorm/test"',
209+ 'github.md',
210+ 'examples/github.md'
211+ ]).then(function (result) {
165212 st.equal(
166− strip(stderr),
213+ strip(result.stderr),
167214 [
168− 'example.md',
169− ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
170− ' 19:34-19:102 warning Link to unknown file: `examples/world.md` ' + source,
171− ' 21:12-21:81 warning Link to unknown file: `examples/world.md` ' + source,
172− ' 23:10-23:37 warning Link to unknown file: `examples/world.md` ' + source,
173− ' 25:10-25:35 warning Link to unknown file: `examples/world.md` ' + source,
174− ' 37:10-37:42 warning Link to unknown heading in `examples/example.md`: `world`' + source,
175− ' 39:10-39:40 warning Link to unknown heading in `examples/example.md`: `world`' + source,
176− ' 41:10-41:83 warning Link to unknown heading in `examples/example.md`: `world`' + source,
177− ' 43:10-43:84 warning Link to unknown heading in `examples/example.md`: `world`' + source,
178− ' 45:10-45:40 warning Link to unknown file: `examples/world.md` ' + source,
179− ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
180− ' 47:10-47:38 warning Link to unknown file: `examples/world.md` ' + source,
181− ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
182− ' 49:10-49:81 warning Link to unknown file: `examples/world.md` ' + source,
183− ' 49:10-49:81 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
184− ' 51:10-51:82 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
185− ' 51:10-51:82 warning Link to unknown file: `examples/world.md` ' + source,
215+ 'examples/github.md',
216+ ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
217+ ' 15:34-15:93 warning Link to unknown file: `world.md` ' + source,
218+ ' 17:12-17:72 warning Link to unknown file: `world.md` ' + source,
219+ ' 19:10-19:29 warning Link to unknown file: `world.md` ' + source,
220+ ' 29:10-29:33 warning Link to unknown heading in `github.md`: `world` ' + source,
221+ ' 31:10-31:73 warning Link to unknown heading in `github.md`: `world` ' + source,
222+ ' 33:10-33:74 warning Link to unknown heading in `github.md`: `world` ' + source,
223+ ' 35:10-35:32 warning Link to unknown file: `world.md` ' + source,
224+ ' 35:10-35:32 warning Link to unknown heading in `world.md`: `hello` ' + source,
225+ ' 37:10-37:72 warning Link to unknown file: `world.md` ' + source,
226+ ' 37:10-37:72 warning Link to unknown heading in `world.md`: `hello` ' + source,
227+ ' 39:10-39:73 warning Link to unknown heading in `world.md`: `hello` ' + source,
228+ ' 39:10-39:73 warning Link to unknown file: `world.md` ' + source,
186229 '',
187− 'examples/example.md',
188− ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
189− ' 15:34-15:93 warning Link to unknown file: `world.md` ' + source,
190− ' 17:12-17:72 warning Link to unknown file: `world.md` ' + source,
191− ' 19:10-19:29 warning Link to unknown file: `world.md` ' + source,
192− ' 29:10-29:34 warning Link to unknown heading in `example.md`: `world` ' + source,
193− ' 31:10-31:74 warning Link to unknown heading in `example.md`: `world` ' + source,
194− ' 33:10-33:75 warning Link to unknown heading in `example.md`: `world` ' + source,
195− ' 35:10-35:32 warning Link to unknown file: `world.md` ' + source,
196− ' 35:10-35:32 warning Link to unknown heading in `world.md`: `hello` ' + source,
197− ' 37:10-37:72 warning Link to unknown file: `world.md` ' + source,
198− ' 37:10-37:72 warning Link to unknown heading in `world.md`: `hello` ' + source,
199− ' 39:10-39:73 warning Link to unknown heading in `world.md`: `hello` ' + source,
200− ' 39:10-39:73 warning Link to unknown file: `world.md` ' + source,
230+ 'github.md',
231+ ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
232+ ' 19:34-19:102 warning Link to unknown file: `examples/world.md` ' + source,
233+ ' 21:12-21:81 warning Link to unknown file: `examples/world.md` ' + source,
234+ ' 23:10-23:37 warning Link to unknown file: `examples/world.md` ' + source,
235+ ' 25:10-25:35 warning Link to unknown file: `examples/world.md` ' + source,
236+ ' 37:10-37:41 warning Link to unknown heading in `examples/github.md`: `world`' + source,
237+ ' 39:10-39:39 warning Link to unknown heading in `examples/github.md`: `world`' + source,
238+ ' 41:10-41:82 warning Link to unknown heading in `examples/github.md`: `world`' + source,
239+ ' 43:10-43:83 warning Link to unknown heading in `examples/github.md`: `world`' + source,
240+ ' 45:10-45:40 warning Link to unknown file: `examples/world.md` ' + source,
241+ ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
242+ ' 47:10-47:38 warning Link to unknown file: `examples/world.md` ' + source,
243+ ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
244+ ' 49:10-49:81 warning Link to unknown file: `examples/world.md` ' + source,
245+ ' 49:10-49:81 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
246+ ' 51:10-51:82 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
247+ ' 51:10-51:82 warning Link to unknown file: `examples/world.md` ' + source,
201248 '',
202249 '⚠ 30 warnings'
203250 ].join('\n'),
204251 'should report'
205252 );
206− });
253+ }, st.error);
207254 });
208255
209256 t.test('should work on GitHub URLs when with package.json', function (st) {
@@ -218,80 +265,161 @@ test('remark-validate-links', function (t) {
218265 fs.unlinkSync('./package.json');
219266 }
220267
221− execa.stderr(bin, [
268+ execa(bin, [
222269 '--no-config',
223270 '--no-ignore',
224271 '--use',
225272 '../..',
226− 'example.md',
227− 'examples/example.md'
228− ]).then(function (stderr) {
273+ 'github.md',
274+ 'examples/github.md'
275+ ]).then(function (result) {
229276 clean();
230277 st.equal(
231− strip(stderr),
278+ strip(result.stderr),
232279 [
233− 'example.md',
234− ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
235− ' 19:34-19:102 warning Link to unknown file: `examples/world.md` ' + source,
236− ' 21:12-21:81 warning Link to unknown file: `examples/world.md` ' + source,
237− ' 23:10-23:37 warning Link to unknown file: `examples/world.md` ' + source,
238− ' 25:10-25:35 warning Link to unknown file: `examples/world.md` ' + source,
239− ' 37:10-37:42 warning Link to unknown heading in `examples/example.md`: `world`' + source,
240− ' 39:10-39:40 warning Link to unknown heading in `examples/example.md`: `world`' + source,
241− ' 41:10-41:83 warning Link to unknown heading in `examples/example.md`: `world`' + source,
242− ' 43:10-43:84 warning Link to unknown heading in `examples/example.md`: `world`' + source,
243− ' 45:10-45:40 warning Link to unknown file: `examples/world.md` ' + source,
244− ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
245− ' 47:10-47:38 warning Link to unknown file: `examples/world.md` ' + source,
246− ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
247− ' 49:10-49:81 warning Link to unknown file: `examples/world.md` ' + source,
248− ' 49:10-49:81 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
249− ' 51:10-51:82 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
250− ' 51:10-51:82 warning Link to unknown file: `examples/world.md` ' + source,
280+ 'examples/github.md',
281+ ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
282+ ' 15:34-15:93 warning Link to unknown file: `world.md` ' + source,
283+ ' 17:12-17:72 warning Link to unknown file: `world.md` ' + source,
284+ ' 19:10-19:29 warning Link to unknown file: `world.md` ' + source,
285+ ' 29:10-29:33 warning Link to unknown heading in `github.md`: `world` ' + source,
286+ ' 31:10-31:73 warning Link to unknown heading in `github.md`: `world` ' + source,
287+ ' 33:10-33:74 warning Link to unknown heading in `github.md`: `world` ' + source,
288+ ' 35:10-35:32 warning Link to unknown file: `world.md` ' + source,
289+ ' 35:10-35:32 warning Link to unknown heading in `world.md`: `hello` ' + source,
290+ ' 37:10-37:72 warning Link to unknown file: `world.md` ' + source,
291+ ' 37:10-37:72 warning Link to unknown heading in `world.md`: `hello` ' + source,
292+ ' 39:10-39:73 warning Link to unknown heading in `world.md`: `hello` ' + source,
293+ ' 39:10-39:73 warning Link to unknown file: `world.md` ' + source,
251294 '',
252− 'examples/example.md',
253− ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
254− ' 15:34-15:93 warning Link to unknown file: `world.md` ' + source,
255− ' 17:12-17:72 warning Link to unknown file: `world.md` ' + source,
256− ' 19:10-19:29 warning Link to unknown file: `world.md` ' + source,
257− ' 29:10-29:34 warning Link to unknown heading in `example.md`: `world` ' + source,
258− ' 31:10-31:74 warning Link to unknown heading in `example.md`: `world` ' + source,
259− ' 33:10-33:75 warning Link to unknown heading in `example.md`: `world` ' + source,
260− ' 35:10-35:32 warning Link to unknown file: `world.md` ' + source,
261− ' 35:10-35:32 warning Link to unknown heading in `world.md`: `hello` ' + source,
262− ' 37:10-37:72 warning Link to unknown file: `world.md` ' + source,
263− ' 37:10-37:72 warning Link to unknown heading in `world.md`: `hello` ' + source,
264− ' 39:10-39:73 warning Link to unknown heading in `world.md`: `hello` ' + source,
265− ' 39:10-39:73 warning Link to unknown file: `world.md` ' + source,
295+ 'github.md',
296+ ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
297+ ' 19:34-19:102 warning Link to unknown file: `examples/world.md` ' + source,
298+ ' 21:12-21:81 warning Link to unknown file: `examples/world.md` ' + source,
299+ ' 23:10-23:37 warning Link to unknown file: `examples/world.md` ' + source,
300+ ' 25:10-25:35 warning Link to unknown file: `examples/world.md` ' + source,
301+ ' 37:10-37:41 warning Link to unknown heading in `examples/github.md`: `world`' + source,
302+ ' 39:10-39:39 warning Link to unknown heading in `examples/github.md`: `world`' + source,
303+ ' 41:10-41:82 warning Link to unknown heading in `examples/github.md`: `world`' + source,
304+ ' 43:10-43:83 warning Link to unknown heading in `examples/github.md`: `world`' + source,
305+ ' 45:10-45:40 warning Link to unknown file: `examples/world.md` ' + source,
306+ ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
307+ ' 47:10-47:38 warning Link to unknown file: `examples/world.md` ' + source,
308+ ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
309+ ' 49:10-49:81 warning Link to unknown file: `examples/world.md` ' + source,
310+ ' 49:10-49:81 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
311+ ' 51:10-51:82 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
312+ ' 51:10-51:82 warning Link to unknown file: `examples/world.md` ' + source,
266313 '',
267314 '⚠ 30 warnings'
268315 ].join('\n'),
269316 'should report'
270317 );
271− }, clean);
318+ }, function (err) {
319+ clean();
320+ st.error(err);
321+ });
322+ });
323+
324+ t.test('should support a GitLab shortcode', function (st) {
325+ st.plan(1);
326+
327+ execa(bin, [
328+ '--no-config',
329+ '--no-ignore',
330+ '--use',
331+ '../..=repository:"gitlab:wooorm/test"',
332+ 'gitlab.md'
333+ ]).then(function (result) {
334+ st.equal(
335+ strip(result.stderr),
336+ [
337+ 'gitlab.md',
338+ ' 5:37-5:51 warning Link to unknown heading: `world` ' + source,
339+ ' 19:34-19:102 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md`' + source,
340+ ' 21:12-21:81 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md`' + source,
341+ ' 23:10-23:37 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md`' + source,
342+ ' 25:10-25:35 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md`' + source,
343+ ' 37:10-37:41 warning Link to unknown heading in `examples/gitlab.md`: `world` ' + source,
344+ ' 39:10-39:39 warning Link to unknown heading in `examples/gitlab.md`: `world` ' + source,
345+ ' 41:10-41:82 warning Link to unknown heading in `examples/gitlab.md`: `world` ' + source,
346+ ' 43:10-43:83 warning Link to unknown heading in `examples/gitlab.md`: `world` ' + source,
347+ ' 45:10-45:40 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md`' + source,
348+ ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
349+ ' 47:10-47:38 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md`' + source,
350+ ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
351+ ' 49:10-49:81 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md`' + source,
352+ ' 49:10-49:81 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
353+ ' 51:10-51:82 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
354+ ' 51:10-51:82 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md`' + source,
355+ '',
356+ '⚠ 17 warnings'
357+ ].join('\n'),
358+ 'should report'
359+ );
360+ }, st.error);
361+ });
362+
363+ t.test('should support a Bitbucket shortcode', function (st) {
364+ st.plan(1);
365+
366+ execa(bin, [
367+ '--no-config',
368+ '--no-ignore',
369+ '--use',
370+ '../..=repository:"bitbucket:wooorm/test"',
371+ 'bitbucket.md'
372+ ]).then(function (result) {
373+ st.equal(
374+ strip(result.stderr),
375+ [
376+ 'bitbucket.md',
377+ ' 5:37-5:67 warning Link to unknown heading: `world` ' + source,
378+ ' 19:34-19:104 warning Link to unknown file: `examples/world.md` ' + source,
379+ ' 21:12-21:83 warning Link to unknown file: `examples/world.md` ' + source,
380+ ' 23:10-23:37 warning Link to unknown file: `examples/world.md` ' + source,
381+ ' 25:10-25:35 warning Link to unknown file: `examples/world.md` ' + source,
382+ ' 37:10-37:60 warning Link to unknown heading in `examples/bitbucket.md`: `world`' + source,
383+ ' 39:10-39:58 warning Link to unknown heading in `examples/bitbucket.md`: `world`' + source,
384+ ' 41:10-41:103 warning Link to unknown heading in `examples/bitbucket.md`: `world`' + source,
385+ ' 43:10-43:104 warning Link to unknown heading in `examples/bitbucket.md`: `world`' + source,
386+ ' 45:10-45:56 warning Link to unknown file: `examples/world.md` ' + source,
387+ ' 45:10-45:56 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
388+ ' 47:10-47:54 warning Link to unknown file: `examples/world.md` ' + source,
389+ ' 47:10-47:54 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
390+ ' 49:10-49:99 warning Link to unknown file: `examples/world.md` ' + source,
391+ ' 49:10-49:99 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
392+ ' 51:10-51:100 warning Link to unknown heading in `examples/world.md`: `hello` ' + source,
393+ ' 51:10-51:100 warning Link to unknown file: `examples/world.md` ' + source,
394+ '',
395+ '⚠ 17 warnings'
396+ ].join('\n'),
397+ 'should report'
398+ );
399+ }, st.error);
272400 });
273401
274402 t.test('should suggest similar links', function (st) {
275403 st.plan(1);
276404
277− execa.stderr(bin, [
405+ execa(bin, [
278406 '--no-config',
279407 '--no-ignore',
280408 '--use',
281− '../../index',
409+ '../..',
282410 'suggestions.md'
283− ]).then(function (stderr) {
411+ ]).then(function (result) {
284412 st.equal(
285− strip(stderr),
413+ strip(result.stderr),
286414 [
287415 'suggestions.md',
288− ' 3:22-3:37 warning Link to unknown heading: `helloo`. Did you mean `hello` ' + source,
289− ' 7:17-7:40 warning Link to unknown heading in `example.md`: `fiiiles`. Did you mean `files`' + source,
416+ ' 3:22-3:37 warning Link to unknown heading: `helloo`. Did you mean `hello` ' + source,
417+ ' 7:17-7:39 warning Link to unknown heading in `github.md`: `fiiiles`. Did you mean `files`' + source,
290418 '',
291419 '⚠ 2 warnings'
292420 ].join('\n'),
293421 'should report'
294422 );
295− });
423+ }, st.error);
296424 });
297425});