39 lines
1018 B
JavaScript
39 lines
1018 B
JavaScript
|
'use strict';
|
||
|
|
||
|
var fs = require('fs');
|
||
|
var assert = require('assert');
|
||
|
var lex = require('../');
|
||
|
|
||
|
var dir = __dirname + '/cases/';
|
||
|
fs.readdirSync(dir).forEach(function (testCase) {
|
||
|
if (/\.pug$/.test(testCase)) {
|
||
|
test(testCase, () => {
|
||
|
var result = lex(fs.readFileSync(dir + testCase, 'utf8'), {filename: dir + testCase});
|
||
|
expect(result).toMatchSnapshot();
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|
||
|
var edir = __dirname + '/errors/';
|
||
|
fs.readdirSync(edir).forEach(function (testCase) {
|
||
|
if (/\.pug$/.test(testCase)) {
|
||
|
test(testCase, () => {
|
||
|
var actual;
|
||
|
try {
|
||
|
lex(fs.readFileSync(edir + testCase, 'utf8'), {filename: edir + testCase});
|
||
|
throw new Error('Expected ' + testCase + ' to throw an exception.');
|
||
|
} catch (ex) {
|
||
|
if (!ex || !ex.code || !ex.code.indexOf('PUG:') === 0) throw ex;
|
||
|
actual = {
|
||
|
msg: ex.msg,
|
||
|
code: ex.code,
|
||
|
line: ex.line,
|
||
|
column: ex.column
|
||
|
};
|
||
|
}
|
||
|
expect(actual).toMatchSnapshot();
|
||
|
});
|
||
|
}
|
||
|
});
|