yamp
Version:
Yet Another Markdown Parser
101 lines (87 loc) • 3.69 kB
JavaScript
;
const assert = require('chai').assert;
const fs = require('fs-extra');
const Renderer = require('../../app/renderer');
const remarkRenderer = require('../../app/renderers/remark_renderer');
const config = require('../config/config');
const testDir = config.testDir;
const testFile = config.testFiles.remark;
const regex = config.regex;
describe("Remark Renderer", function() {
it("Create Renderer with default data", () => {
const renderer = new remarkRenderer({});
assert.ok(renderer);
assert.instanceOf(renderer, remarkRenderer);
assert.instanceOf(renderer, Renderer);
assert.strictEqual(renderer.output, "remark");
const keys = Object.keys(config.rendererDefaultOptions);
for (let i = 0; i < keys.length; i += 1) {
const k = keys[i];
assert.strictEqual(renderer.options[k], config.rendererDefaultOptions[k]);
}
});
it("Create Remark file", (done) => {
const renderer = new remarkRenderer({
outputFilename: testDir + "/remark_test"
});
const originalOptions = JSON.stringify(renderer.options);
renderer.renderFile(testDir + "/" + testFile, (renderFileError) => {
assert.notOk(renderFileError);
fs.stat(testDir + "/remark_test.html", (err, res) => {
assert.notOk(err);
assert.ok(res);
assert.ok(res.isFile());
fs.readFile(testDir + "/remark_test.html", "utf8", (err, res) => {
assert.notOk(err);
assert.ok(res);
assert.match(res, regex.html);
assert.match(res, regex.htmlBody);
for (let i = 0; i < regex.remarkTestFile.length; i++) {
assert.match(res, regex.remarkTestFile[i]);
}
assert.strictEqual(JSON.stringify(renderer.options), originalOptions);
done();
});
});
});
});
it("Create Remark file using a Promise", (done) => {
const renderer = new remarkRenderer({
outputFilename: testDir + "/remark_test"
});
const originalOptions = JSON.stringify(renderer.options);
renderer.renderFile(testDir + "/" + testFile)
.then(() => {
fs.stat(testDir + "/remark_test.html", (err, res) => {
assert.notOk(err);
assert.ok(res);
assert.ok(res.isFile());
fs.readFile(testDir + "/remark_test.html", "utf8", (err, res) => {
assert.notOk(err);
assert.ok(res);
assert.match(res, regex.html);
assert.match(res, regex.htmlBody);
for (let i = 0; i < regex.remarkTestFile.length; i++) {
assert.match(res, regex.remarkTestFile[i]);
}
assert.strictEqual(JSON.stringify(renderer.options), originalOptions);
done();
});
});
});
});
it("Create Remark file with supplied extension", (done) => {
const renderer = new remarkRenderer({
outputFilename: testDir + "/remark_test.html"
});
renderer.renderFile(testDir + "/" + testFile, (renderFileError) => {
assert.notOk(renderFileError);
fs.stat(testDir + "/remark_test.html", (err, res) => {
assert.notOk(err);
assert.ok(res);
assert.ok(res.isFile());
done();
});
});
});
});