/* jshint -W117 */ const fs = require('fs'); const path = require('path'); const utils = require('./test_utils'); const dataDir = 'test_data'; const file = path.join(dataDir, 'test.md'); const config = { 'modules': { 'prism': true, }, 'showdown': { 'simplifiedAutoLink': true, 'smartIndentationFix': true } }; const renderer = require('../src/renderer')(config); beforeEach(() => { config['modules']['prism'] = true; utils.deleteFolderSync(dataDir); fs.mkdirSync(dataDir); }); afterAll(() => { if (fs.existsSync(dataDir)) { utils.deleteFolderSync(dataDir); } }); test('invalid file', (done) => { renderer.render('invalid file', (err, html) => { expect(err).not.toBeNull(); expect(html).not.toBeDefined(); done(); }); }); test('normal file', (done) => { fs.writeFileSync(file, `# Hello`); renderer.render(file, (err, html) => { expect(err).toBeNull(); expect(html).toBe('
print("hello")\n\nprint("hello")\n');
done();
});
});
test('prism correct', (done) => {
fs.writeFileSync(file, '```python\nprint("hello")\n```');
renderer.render(file, (err, html) => {
expect(err).toBeNull();
expect(html).not.toBe('print("hello")\n');
expect(html.indexOf('')).toBe(0);
done();
});
});
test('prism invalid lang', (done) => {
fs.writeFileSync(file, '```pythdon\nprint("hello")\n```');
renderer.render(file, (err, html) => {
expect(err).toBeNull();
expect(html).not.toBe('print("hello")\n
');
expect(html.indexOf('')).toBe(0);
done();
});
});
test('prism mutliple code blocks', (done) => {
fs.writeFileSync(file, '```python\n\n```\n\n```python\n\n```');
renderer.render(file, (err, html) => {
expect(err).toBeNull();
expect(html).toBe('
\n
');
done();
});
});