4var path = require('path')
5var test = require('tape')
6var execa = require('execa')
7var vfile = require('to-vfile')
8var remark = require('remark')
9var strip = require('strip-ansi')
10var links = require('..')
12process.chdir(path.resolve(process.cwd(), 'test', 'fixtures'))
14test.onFinish(function() {
15 process.chdir(path.resolve(process.cwd(), '..', '..'))
18var bin = path.join('..', '..', 'node_modules', '.bin', 'remark')
20test('remark-validate-links', function(t) {
21 t.test('should work on the API', function(st) {
26 .process(vfile.readSync('github.md'), function(err, file) {
28 [err].concat(file.messages.map(String)),
29 [null, 'github.md:5:37-5:51: Link to unknown heading: `world`'],
30 'should report messages'
35 t.test('should throw on unparsable git repositories', function(st) {
42 '../..=repository:"invalid:shortcode"',
46 st.fail('should not be successful')
56 ' 1:1 error Error: remark-validate-links cannot parse `repository` (`invalid:shortcode`)'
58 'should report an error'
64 t.test('should throw on gist repositories', function(st) {
71 '../..=repository:"gist:wooorm/8504606"',
75 st.fail('should not be successful')
85 ' 1:1 error Error: remark-validate-links does not support gist repositories'
87 'should report an error'
93 t.test('should ignore unfound files', function(st) {
105 st.fail('should not be successful')
112 ' 1:1 error No such file or directory',
115 ' 5:12-5:21 warning Link to unknown heading: `world` missing-heading remark-validate-links',
117 '2 messages (✖ 1 error, ⚠ 1 warning)',
120 'should report an error'
126 t.test('should work when not all files are given', function(st) {
135 ]).then(function(result) {
137 strip(result.stderr),
140 ' 5:37-5:51 warning Link to unknown heading: `world` missing-heading remark-validate-links',
141 ' 23:10-23:37 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
142 ' 25:10-25:35 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
143 ' 37:10-37:41 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
144 ' 39:10-39:39 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
145 ' 45:10-45:40 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
146 ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
147 ' 47:10-47:38 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
148 ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
157 t.test('should work when all files are given', function(st) {
167 ]).then(function(result) {
169 strip(result.stderr),
171 'examples/github.md',
172 ' 5:37-5:51 warning Link to unknown heading: `world` missing-heading remark-validate-links',
173 ' 19:10-19:29 warning Link to unknown file: `world.md` missing-file remark-validate-links',
174 ' 29:10-29:33 warning Link to unknown heading in `github.md`: `world` missing-heading-in-file remark-validate-links',
175 ' 35:10-35:32 warning Link to unknown file: `world.md` missing-file remark-validate-links',
176 ' 35:10-35:32 warning Link to unknown heading in `world.md`: `hello` missing-heading-in-file remark-validate-links',
179 ' 5:37-5:51 warning Link to unknown heading: `world` missing-heading remark-validate-links',
180 ' 23:10-23:37 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
181 ' 25:10-25:35 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
182 ' 37:10-37:41 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
183 ' 39:10-39:39 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
184 ' 45:10-45:40 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
185 ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
186 ' 47:10-47:38 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
187 ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
196 t.test('should work with definitions', function(st) {
205 ]).then(function(result) {
207 strip(result.stderr),
210 ' 5:12-5:21 warning Link to unknown heading: `world` missing-heading remark-validate-links',
219 t.test('should work on GitHub URLs when given a repo', function(st) {
226 '../..=repository:"wooorm/test"',
229 ]).then(function(result) {
231 strip(result.stderr),
233 'examples/github.md',
234 ' 5:37-5:51 warning Link to unknown heading: `world` missing-heading remark-validate-links',
235 ' 15:34-15:93 warning Link to unknown file: `world.md` missing-file remark-validate-links',
236 ' 17:12-17:72 warning Link to unknown file: `world.md` missing-file remark-validate-links',
237 ' 19:10-19:29 warning Link to unknown file: `world.md` missing-file remark-validate-links',
238 ' 29:10-29:33 warning Link to unknown heading in `github.md`: `world` missing-heading-in-file remark-validate-links',
239 ' 31:10-31:73 warning Link to unknown heading in `github.md`: `world` missing-heading-in-file remark-validate-links',
240 ' 33:10-33:74 warning Link to unknown heading in `github.md`: `world` missing-heading-in-file remark-validate-links',
241 ' 35:10-35:32 warning Link to unknown file: `world.md` missing-file remark-validate-links',
242 ' 35:10-35:32 warning Link to unknown heading in `world.md`: `hello` missing-heading-in-file remark-validate-links',
243 ' 37:10-37:72 warning Link to unknown file: `world.md` missing-file remark-validate-links',
244 ' 37:10-37:72 warning Link to unknown heading in `world.md`: `hello` missing-heading-in-file remark-validate-links',
245 ' 39:10-39:73 warning Link to unknown file: `world.md` missing-file remark-validate-links',
246 ' 39:10-39:73 warning Link to unknown heading in `world.md`: `hello` missing-heading-in-file remark-validate-links',
249 ' 5:37-5:51 warning Link to unknown heading: `world` missing-heading remark-validate-links',
250 ' 19:34-19:102 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
251 ' 21:12-21:81 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
252 ' 23:10-23:37 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
253 ' 25:10-25:35 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
254 ' 37:10-37:41 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
255 ' 39:10-39:39 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
256 ' 41:10-41:82 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
257 ' 43:10-43:83 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
258 ' 45:10-45:40 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
259 ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
260 ' 47:10-47:38 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
261 ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
262 ' 49:10-49:81 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
263 ' 49:10-49:81 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
264 ' 51:10-51:82 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
265 ' 51:10-51:82 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
274 t.test('should work on GitHub URLs when with package.json', function(st) {
277 /* `cwd` is moved to `test/fixtures`. */
280 JSON.stringify({repository: 'wooorm/test'}, 0, 2)
284 fs.unlinkSync('./package.json')
298 strip(result.stderr),
300 'examples/github.md',
301 ' 5:37-5:51 warning Link to unknown heading: `world` missing-heading remark-validate-links',
302 ' 15:34-15:93 warning Link to unknown file: `world.md` missing-file remark-validate-links',
303 ' 17:12-17:72 warning Link to unknown file: `world.md` missing-file remark-validate-links',
304 ' 19:10-19:29 warning Link to unknown file: `world.md` missing-file remark-validate-links',
305 ' 29:10-29:33 warning Link to unknown heading in `github.md`: `world` missing-heading-in-file remark-validate-links',
306 ' 31:10-31:73 warning Link to unknown heading in `github.md`: `world` missing-heading-in-file remark-validate-links',
307 ' 33:10-33:74 warning Link to unknown heading in `github.md`: `world` missing-heading-in-file remark-validate-links',
308 ' 35:10-35:32 warning Link to unknown file: `world.md` missing-file remark-validate-links',
309 ' 35:10-35:32 warning Link to unknown heading in `world.md`: `hello` missing-heading-in-file remark-validate-links',
310 ' 37:10-37:72 warning Link to unknown file: `world.md` missing-file remark-validate-links',
311 ' 37:10-37:72 warning Link to unknown heading in `world.md`: `hello` missing-heading-in-file remark-validate-links',
312 ' 39:10-39:73 warning Link to unknown file: `world.md` missing-file remark-validate-links',
313 ' 39:10-39:73 warning Link to unknown heading in `world.md`: `hello` missing-heading-in-file remark-validate-links',
316 ' 5:37-5:51 warning Link to unknown heading: `world` missing-heading remark-validate-links',
317 ' 19:34-19:102 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
318 ' 21:12-21:81 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
319 ' 23:10-23:37 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
320 ' 25:10-25:35 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
321 ' 37:10-37:41 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
322 ' 39:10-39:39 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
323 ' 41:10-41:82 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
324 ' 43:10-43:83 warning Link to unknown heading in `examples/github.md`: `world` missing-heading-in-file remark-validate-links',
325 ' 45:10-45:40 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
326 ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
327 ' 47:10-47:38 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
328 ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
329 ' 49:10-49:81 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
330 ' 49:10-49:81 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
331 ' 51:10-51:82 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
332 ' 51:10-51:82 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
346 t.test('should support a GitLab shortcode', function(st) {
353 '../..=repository:"gitlab:wooorm/test"',
355 ]).then(function(result) {
357 strip(result.stderr),
360 ' 5:37-5:51 warning Link to unknown heading: `world` missing-heading remark-validate-links',
361 ' 19:34-19:102 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md` missing-file remark-validate-links',
362 ' 21:12-21:81 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md` missing-file remark-validate-links',
363 ' 23:10-23:37 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md` missing-file remark-validate-links',
364 ' 25:10-25:35 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md` missing-file remark-validate-links',
365 ' 37:10-37:41 warning Link to unknown heading in `examples/gitlab.md`: `world` missing-heading-in-file remark-validate-links',
366 ' 39:10-39:39 warning Link to unknown heading in `examples/gitlab.md`: `world` missing-heading-in-file remark-validate-links',
367 ' 41:10-41:82 warning Link to unknown heading in `examples/gitlab.md`: `world` missing-heading-in-file remark-validate-links',
368 ' 43:10-43:83 warning Link to unknown heading in `examples/gitlab.md`: `world` missing-heading-in-file remark-validate-links',
369 ' 45:10-45:40 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md` missing-file remark-validate-links',
370 ' 45:10-45:40 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
371 ' 47:10-47:38 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md` missing-file remark-validate-links',
372 ' 47:10-47:38 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
373 ' 49:10-49:81 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md` missing-file remark-validate-links',
374 ' 49:10-49:81 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
375 ' 51:10-51:82 warning Link to unknown file: `examples/world.md`. Did you mean `examples/gitlab.md` missing-file remark-validate-links',
376 ' 51:10-51:82 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
385 t.test('should support a Bitbucket shortcode', function(st) {
392 '../..=repository:"bitbucket:wooorm/test"',
394 ]).then(function(result) {
396 strip(result.stderr),
399 ' 5:37-5:67 warning Link to unknown heading: `world` missing-heading remark-validate-links',
400 ' 19:34-19:104 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
401 ' 21:12-21:83 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
402 ' 23:10-23:37 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
403 ' 25:10-25:35 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
404 ' 37:10-37:60 warning Link to unknown heading in `examples/bitbucket.md`: `world` missing-heading-in-file remark-validate-links',
405 ' 39:10-39:58 warning Link to unknown heading in `examples/bitbucket.md`: `world` missing-heading-in-file remark-validate-links',
406 ' 41:10-41:103 warning Link to unknown heading in `examples/bitbucket.md`: `world` missing-heading-in-file remark-validate-links',
407 ' 43:10-43:104 warning Link to unknown heading in `examples/bitbucket.md`: `world` missing-heading-in-file remark-validate-links',
408 ' 45:10-45:56 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
409 ' 45:10-45:56 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
410 ' 47:10-47:54 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
411 ' 47:10-47:54 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
412 ' 49:10-49:99 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
413 ' 49:10-49:99 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
414 ' 51:10-51:100 warning Link to unknown file: `examples/world.md` missing-file remark-validate-links',
415 ' 51:10-51:100 warning Link to unknown heading in `examples/world.md`: `hello` missing-heading-in-file remark-validate-links',
424 t.test('should suggest similar links', function(st) {
433 ]).then(function(result) {
435 strip(result.stderr),
438 ' 3:22-3:37 warning Link to unknown heading: `helloo`. Did you mean `hello` missing-heading remark-validate-links',
439 ' 7:17-7:39 warning Link to unknown heading in `github.md`: `fiiiles`. Did you mean `files` missing-heading-in-file remark-validate-links',
448 t.test('should recognize github links to particular lines', function(st) {
455 '../..=repository:"wooorm/test"',
457 ]).then(function(result) {
459 strip(result.stderr),
462 ' 5:9-5:61 warning Link to unknown file: `examples/missing.js` missing-file remark-validate-links',
463 ' 9:1-9:71 warning Link to unknown file: `examples/missing.js` missing-file remark-validate-links',
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list