UNPKG

markdown-html-fixed

Version:

Command line tool for markdown to html conversion.

84 lines (71 loc) 2.95 kB
var assert = require('chai').assert; var childProcess = require('child_process'); var execFile = childProcess.execFile; var mdhtml = function () { var args = Array.prototype.slice.call(arguments); args.unshift(__dirname + '/../index.js'); return execFile.apply(this, args); }; test('Basic', function (done) { mdhtml([__dirname + '/fixture/basic.md'], function (err, stdout, stderr) { assert.notEqual(stdout.search('<html>'), -1, 'It should return html'); assert.notEqual(stdout.search('<ol>'), -1, 'Output should contain an <ol>'); assert.notEqual(stdout.search('<title>basic</title>'), -1, 'Title should be "basic"'); done(); }); }); test('Template', function (done) { mdhtml(['--template', __dirname + '/fixture/template.html', __dirname + '/fixture/basic.md'], function (err, stdout, stderr) { assert.notEqual(stdout.search('THIS IS A CUSTOM TEMPLATE'), -1, 'It should use custom template'); done(); }); }); test('Title', function (done) { mdhtml(['--title', 'blabla', __dirname + '/fixture/basic.md'], function (err, stdout, stderr) { assert.notEqual(stdout.search('<title>blabla'), -1, 'It should use user-specified title'); done(); }); }); test('Style', function (done) { mdhtml(['--style', __dirname + '/fixture/style.css', __dirname + '/fixture/basic.md'], function (err, stdout, stderr) { assert.notEqual(stdout.search('body { background: #000; }'), -1, 'It should use user-specified styles'); done(); }); }); test('Help', function (done) { mdhtml(['-h'], function (err, stdout, stderr) { assert.equal(stdout.search('<html>'), -1, 'Stdout should not contain html'); assert.ok(stdout.length, 'Stdout should not be empty'); done(); }); }); test('Script', function (done) { mdhtml(['--script', __dirname + '/fixture/script.js', __dirname + '/fixture/basic.md'], function (err, stdout, stderr) { assert.notEqual(stdout.search('custom script'), -1, 'It should use user-specified script'); done(); }); }); test('Stdin', function (done) { var io = childProcess.spawn(__dirname + '/../index.js', ['-i']); var out = ""; io.stdout.on('data', function (chunk) { out += chunk.toString(); }); io.stdout.on('end', function () { assert.ok(out.match(/<h2[^>]*>Test/)); done(); }); io.stdin.end('## Test'); }); test('First header is a title', function (done) { mdhtml([__dirname + '/fixture/firstHeaderIsATitle.md'], function (err, stdout, stderr) { assert.ok(stdout.match(/<title>XYZ<\/title>/)); done(); }); }); test('Title option takes precedence by first header', function (done) { mdhtml(['--title', 'foo',__dirname + '/fixture/firstHeaderIsATitle.md'], function (err, stdout, stderr) { assert.ok(stdout.match(/<title>foo<\/title>/)); done(); }); });