pen
Version:
A better Markdown previewer
72 lines (65 loc) • 1.89 kB
JavaScript
import assert from "assert";
import fs from "fs";
import helper from "./lib/helper";
import MarkdownWatcher from "../src/markdown-watcher";
describe("MarkdownWatcher", () => {
let watcher;
beforeEach(() => {
helper.createFile("watcher-temp.md", "# hello");
});
afterEach(() => {
watcher.stop();
helper.clean();
});
it("reads a Markdown file and send parsed HTML data", done => {
watcher = new MarkdownWatcher(helper.path("watcher-temp.md"));
watcher
.onData(data => {
assert.equal(data, '<h1 id="hello">hello</h1>\n');
done();
})
.onError(done);
});
it("send parsed HTML data again when the file is updated", done => {
const callback = err => {
if (err) {
done(err);
}
};
let called = 0;
watcher = new MarkdownWatcher(helper.path("watcher-temp.md"));
watcher
.onData(data => {
switch (called) {
case 0:
assert.equal(data, '<h1 id="hello">hello</h1>\n');
fs.writeFile(
helper.path("watcher-temp.md"),
"```js\nvar a=10;\n```",
callback
);
break;
case 1:
assert.equal(
data,
'<pre><code class="hljs language-js"><span class="hljs-keyword">var</span> a=<span class="hljs-number">10</span>;\n</code></pre>\n'
);
fs.writeFile(
helper.path("watcher-temp.md"),
"* nested\n * nnested\n * nnnested",
callback
);
break;
case 2:
assert.equal(
data,
"<ul>\n<li>nested\n<ul>\n<li>nnested\n<ul>\n<li>nnnested</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n"
);
done();
break;
}
called += 1;
})
.onError(done);
});
});