-
Notifications
You must be signed in to change notification settings - Fork 5
/
test.js
126 lines (115 loc) · 3.09 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/*!
* gfm-code-block-regex <https://github.com/jonschlinkert/gfm-code-block-regex>
*
* Copyright (c) 2014 Jon Schlinkert, contributors.
* Licensed under the MIT License
*/
'use strict';
var assert = require('assert');
var re = require('./');
describe('code block', function () {
it('should return the code blocks from the fixture.', function () {
var match = re().exec('foo\n```sh\nnpm install micromatch --save-dev\n```\nbar');
assert(Array.isArray(match));
assert.deepEqual(match.slice(), [
'```sh\nnpm install micromatch --save-dev\n```',
'```sh\nnpm install micromatch --save-dev\n```',
'```',
'sh',
'\nnpm install micromatch --save-dev\n',
'```'
]);
});
it('should get the language from a code block.', function () {
var match = re().exec('foo\n```sh\nnpm install micromatch --save-dev\n```\nbar');
assert.equal(match[3], 'sh');
});
it('should work when gfm blocks are in code comments', function () {
var match = re().exec([
'Some text',
'',
'```js',
'/**',
' * This is a comment with',
' * several lines of text.',
' *',
' * An example',
' *',
' * ```js',
' * var foo = bar;',
' * var foo = bar;',
' * var foo = bar;',
' * ```',
' */',
'```',
'More text',
].join('\n'));
assert.equal(match[1], [
'```js',
'/**',
' * This is a comment with',
' * several lines of text.',
' *',
' * An example',
' *',
' * ```js',
' * var foo = bar;',
' * var foo = bar;',
' * var foo = bar;',
' * ```',
' */',
'```',
].join('\n'));
assert.equal(match[3], 'js');
});
it('should work with indented gfm blocks', function () {
var match = re().exec([
'Some text',
'',
' ```js',
' /**',
' * This is a comment with',
' * several lines of text.',
' *',
' * An example',
' *',
' * ```js',
' * var foo = bar;',
' * var foo = bar;',
' * var foo = bar;',
' * ```',
' */',
' ```',
'More text',
].join('\n'));
assert.equal(match[1], [
' ```js',
' /**',
' * This is a comment with',
' * several lines of text.',
' *',
' * An example',
' *',
' * ```js',
' * var foo = bar;',
' * var foo = bar;',
' * var foo = bar;',
' * ```',
' */',
' ```',
].join('\n'));
assert.equal(match[3], 'js');
});
it('should get a code block', function () {
var match = re().exec('random text \n```js\nfoo\n```\n more random text');
assert.equal(match[1], '```js\nfoo\n```');
});
it('should get the language from a code block.', function () {
var match = re().exec('random text \n```js\nfoo\n```\n more random text');
assert.equal(match[3], 'js');
});
it('should get the code from a code block.', function () {
var match = re().exec('random text \n```js\nfoo\n```\n more random text');
assert.equal(match[4], '\nfoo\n');
});
});