47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
|
var assert = require('assert');
|
||
|
var fs = require('fs');
|
||
|
var link = require('../');
|
||
|
|
||
|
function testDir (dir) {
|
||
|
fs.readdirSync(dir).forEach(function (name) {
|
||
|
if (!/\.input\.json$/.test(name)) return;
|
||
|
test(name, function () {
|
||
|
var actual = link(JSON.parse(fs.readFileSync(dir + '/' + name, 'utf8')));
|
||
|
expect(actual).toMatchSnapshot();
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function testDirError (dir) {
|
||
|
fs.readdirSync(dir).forEach(function (name) {
|
||
|
if (!/\.input\.json$/.test(name)) return;
|
||
|
test(name, function () {
|
||
|
var input = JSON.parse(fs.readFileSync(dir + '/' + name, 'utf8'));
|
||
|
var err;
|
||
|
try {
|
||
|
link(input);
|
||
|
} catch (ex) {
|
||
|
err = {
|
||
|
msg: ex.msg,
|
||
|
code: ex.code,
|
||
|
line: ex.line
|
||
|
};
|
||
|
}
|
||
|
if (!err) throw new Error('Expected error')
|
||
|
expect(err).toMatchSnapshot();
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
describe('cases from pug', function () {
|
||
|
testDir(__dirname + '/cases');
|
||
|
});
|
||
|
|
||
|
describe('special cases', function () {
|
||
|
testDir(__dirname + '/special-cases');
|
||
|
});
|
||
|
|
||
|
describe('error handling', function () {
|
||
|
testDirError(__dirname + '/errors');
|
||
|
});
|