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'); });