UNPKG

2.84 kBJavaScriptView Raw
1var util = require('./test'),
2 should = require('should'),
3 marked = require('../custom-marked'),
4 assert = require("assert"),
5 annotext = require('../annotext'),
6 fs = require('fs'),
7 path = require('path'),
8 string = require('string'),
9 async = require('async'),
10 uuid = require('uuid'),
11 moment = require('moment');
12
13
14describe('marked integration', function() {
15 describe('/parse', function() {
16 var samplesWithoutAttribution, samplesWithAttribution;
17
18 beforeEach(function(done) {
19 var nonAttributionSamplesFolder = path.join(__dirname, "/samples/export_html_without_attribution");
20 var attributionSamplesFolder = path.join(__dirname, "/samples/export_html_with_attribution");
21
22 util.loadSamples(nonAttributionSamplesFolder,
23 function(err, resp) {
24 samplesWithoutAttribution = util.groupFilesByName(resp);
25 util.loadSamples(attributionSamplesFolder,
26 function(err, resp) {
27 samplesWithAttribution = util.groupFilesByName(resp);
28 done(err);
29 });
30 });
31 });
32
33 it('Markdown HTML Generation - with single user attribution', function(done) {
34 var userKey = 'd8eb9a26-cb9c-4342-8548-6d6f5750a914';
35 var revisionKey = '4e183537-8b5d-48b4-9905-52b8e2d60686';
36 var revisionDateTime = new moment('2013-12-23T14:33:52.761Z').toDate();
37
38 samplesWithAttribution.forEach(function(sample) {
39
40 var annotextDoc = new annotext();
41 annotextDoc.update({
42 content: sample.markdown,
43 user_key: userKey,
44 revision_key: revisionKey,
45 edit_date: revisionDateTime
46 });
47
48 var htmlExport = marked(sample.markdown, annotextDoc);
49 var exportClean = cleanseContent(htmlExport.replace(/\n/g, '<LF>'));
50 var sampleClean = cleanseContent(sample.html.replace(/\n/g, '<LF>'));
51 exportClean.trim().should.equal(sampleClean.trim());
52 });
53 done();
54 });
55
56 it('Markdown HTML Generation - without attribution', function(done) {
57 samplesWithoutAttribution.forEach(function(sample) {
58 var htmlExport = marked(sample.markdown);
59 var exportClean = cleanseContent(htmlExport.replace(/\n/g, '<LF>'));
60 var sampleClean = cleanseContent(sample.html.replace(/\n/g, '<LF>'));
61 exportClean.trim().should.equal(sampleClean.trim());
62 });
63
64 done();
65 });
66 });
67});
68
69var cleanseContent = function(src) {
70 src = src.replace(/(\<LF\>)+/g, "<LF>");
71 return src;
72}