1 | 'use strict'
|
2 |
|
3 | var test = require('tape')
|
4 | var fs = require('fs')
|
5 | var path = require('path')
|
6 | var standardMarkdown = require('../')
|
7 | var dirty = fs.readFileSync(path.join(__dirname, 'fixtures/dirty.md'), 'utf8')
|
8 | var clean = fs.readFileSync(path.join(__dirname, 'fixtures/clean.md'), 'utf8')
|
9 | var cleanable = fs.readFileSync(path.join(__dirname, 'fixtures/cleanable.md'), 'utf8')
|
10 |
|
11 | test('standardMarkdownFormat', function (t) {
|
12 | t.comment('cleaning the dirty fixture')
|
13 |
|
14 | standardMarkdown.formatText(cleanable, function (cleanErr, results, cleanText) {
|
15 | if (cleanErr) throw cleanErr
|
16 |
|
17 | t.equal(results.length, 0, 'should remove all linting errors from the cleanable fixture')
|
18 | t.equal(cleanable.split('\n').length, cleanText.split('\n').length, 'should keep the same number of lines')
|
19 | t.ok(!/```(js|javascript)\n\(([{|[][\s\S]+[}|\]])\)\n```/mgi.test(cleanText), 'should remove the magic parenthesis when formatting')
|
20 |
|
21 | t.end()
|
22 | })
|
23 | })
|
24 |
|
25 | test('standardMarkdown', function (t) {
|
26 | standardMarkdown.lintText(dirty, function (err, results) {
|
27 | if (err) throw err
|
28 |
|
29 | t.comment('dirty fixture')
|
30 | t.equal(results.length, 5, 'returns six linting errors')
|
31 |
|
32 | t.equal(results[0].message, 'Extra semicolon.', 'finds errors in first block')
|
33 | t.equal(results[0].line, 6, 'identifies correct line number in first block')
|
34 |
|
35 | t.equal(results[1].message, 'Extra semicolon.', 'finds errors in second block')
|
36 | t.equal(results[1].line, 20, 'identifies correct line number in second block')
|
37 |
|
38 | t.comment('every error')
|
39 | t.ok(results.every(function (result) {
|
40 | return result.message.length
|
41 | }), 'has a `message` property')
|
42 | t.ok(results.every(function (result) {
|
43 | return result.line > 0
|
44 | }), 'has a `line` property')
|
45 | t.ok(results.every(function (result) {
|
46 | return result.column > 0
|
47 | }), 'has a `column` property')
|
48 | t.ok(results.every(function (result) {
|
49 | return result.severity > 0
|
50 | }), 'has a `severity` property')
|
51 |
|
52 | t.comment('clean fixture')
|
53 | standardMarkdown.lintText(clean, function (err, results) {
|
54 | if (err) throw err
|
55 | t.equal(results.length, 0, 'has no errors')
|
56 | t.end()
|
57 | })
|
58 | })
|
59 | })
|