UNPKG

2.17 kBJavaScriptView Raw
1'use strict'
2
3var test = require('tape')
4var fs = require('fs')
5var path = require('path')
6var standardMarkdown = require('../')
7var dirty = fs.readFileSync(path.join(__dirname, 'fixtures/dirty.md'), 'utf8')
8var clean = fs.readFileSync(path.join(__dirname, 'fixtures/clean.md'), 'utf8')
9var cleanable = fs.readFileSync(path.join(__dirname, 'fixtures/cleanable.md'), 'utf8')
10
11test('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
25test('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})