25 lines
642 B
JavaScript
25 lines
642 B
JavaScript
const path = require('path');
|
|
const fs = require('fs');
|
|
|
|
const redosDir = path.resolve(__dirname, '../redos');
|
|
|
|
describe('ReDOS tests', () => {
|
|
const files = fs.readdirSync(redosDir);
|
|
files.forEach(file => {
|
|
if (!file.match(/\.js$/)) {
|
|
return;
|
|
}
|
|
|
|
const spec = require(path.resolve(redosDir, file));
|
|
(spec.only ? fit : it)(file, () => {
|
|
const before = process.hrtime();
|
|
expect(spec).toRender(spec.html);
|
|
const elapsed = process.hrtime(before);
|
|
if (elapsed[0] > 0) {
|
|
const s = (elapsed[0] + elapsed[1] * 1e-9).toFixed(3);
|
|
fail(`took too long: ${s}s`);
|
|
}
|
|
});
|
|
});
|
|
});
|