-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtest.js
More file actions
115 lines (103 loc) · 2.55 KB
/
test.js
File metadata and controls
115 lines (103 loc) · 2.55 KB
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
var _md2json = require('./index')
, _path = require('path')
, _strformat = require('strformat')
, expect = require('expect.js')
, _moment = require('moment');
describe('分析meta', function(){
var title = '这里是标题';
var tags = ['tag1', 'tag2', 'tag2'];
var link = 'md2json.html';
var date = '2013-04-18 11:11:11';
var format = ["YYYY-MM-DD hh:mm:ss", "YYYY-MM-DD hh:mm"];
var content = '这里是内容';
var separator = '|';
var markdown = '<!--\ntitle: {0}\ntags: {1} \nlink: {2}\ndate: {3}\nbadkey:\n-->\n\n{4}';
markdown = _strformat(markdown, title, tags.join(separator), link, date, content);
var options = [
{
match: /title/i,
key: 'title'
},{
//匹配并提取数组
match: /tags?/i,
key: 'tags',
type: 'array',
separator: separator
},{
//匹配日期
match: /(date(time)?)|(publish_date)/i,
key: 'publish_date',
type: 'date',
format: format
},{
match: 'link',
key: 'link'
},{
match: 'badkey',
key: 'badkey'
},{
match: 'link',
key: 'id'
}
];
var result = _md2json.convert(markdown, options);
it('检查标题', function(){
expect(result.title).to.equal(title);
});
it('检查数组', function(){
expect(result.tags).to.eql(tags);
})
it('检查日期', function(){
//匹配时间
var oldDate = _moment(date, format).toDate();
expect(result.publish_date).to.eql(oldDate);
});
it('检查内容', function(){
expect(result.content).to.equal(content);
});
it('检查链接', function(){
expect(result.link).to.equal(link);
});
it('检查没有值的key', function(){
expect(result).to.have.key('badkey');
expect(result.badkey).to.equal('');
})
});
describe('测试扫描文件', function(){
var dir = _path.join(__dirname, 'markdown');
//以.md或.markdown结尾
var filter = /\.((md)|(markdown))$/i;
var maps = [
{
match: /title/i,
key: 'title'
},{
match: /date/i,
key: 'publish_date',
type: 'date',
format: ["YYYY-MM-DD hh:mm:ss", "YYYY-MM-DD hh:mm", 'YYYY-MM-DD']
},{
match: /tags?/i,
key: 'tags',
type: 'array'
},{
match: /type/i,
key: 'type'
},{
match: /status/i,
key: 'status'
},{
match: /excerpt/i,
key: 'excerpt'
},{
match: /id/i,
key: 'id'
}
];
var result = [];
_md2json.scan(dir, filter, maps, function(json){
result.push(json);
});
expect(result).to.have.length(3);
console.log(result);
});