12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- var showdown = new require('../src/showdown').Showdown,
- convertor = new showdown.converter(),
- fs = require('fs'),
- path = require('path'),
- should = require('should');
- // Load test cases from disk
- var cases = fs.readdirSync('test/cases').filter(function(file){
- return ~file.indexOf('.md');
- }).map(function(file){
- return file.replace('.md', '');
- });
- // Run each test case
- cases.forEach(function(test){
- var name = test.replace(/[-.]/g, ' ');
- it (name, function(){
- var mdpath = path.join('test/cases', test + '.md'),
- htmlpath = path.join('test/cases', test + '.html'),
- md = fs.readFileSync(mdpath, 'utf8'),
- expected = fs.readFileSync(htmlpath, 'utf8').trim(),
- actual = convertor.makeHtml(md).trim();
- // Normalize line returns
- expected = expected.replace(/\r/g, '');
- // Ignore all leading/trailing whitespace
- expected = expected.split('\n').map(function(x){
- return x.trim();
- }).join('\n');
- actual = actual.split('\n').map(function(x){
- return x.trim();
- }).join('\n');
- // Convert whitespace to a visible character so that it shows up on error reports
- expected = expected.replace(/ /g, '·');
- expected = expected.replace(/\n/g, '•\n');
- actual = actual.replace(/ /g, '·');
- actual = actual.replace(/\n/g, '•\n');
- if (test == 'github-style-codeblock') {
- console.log(actual);
- }
- // Compare
- actual.should.equal(expected);
- });
- });
|