redos-spec.js 624 B

123456789101112131415161718192021222324
  1. const path = require('path');
  2. const fs = require('fs');
  3. const redosDir = path.resolve(__dirname, '../redos');
  4. describe('ReDOS tests', () => {
  5. const files = fs.readdirSync(redosDir);
  6. files.forEach(file => {
  7. if (!file.match(/\.js$/)) {
  8. return;
  9. }
  10. it(file, () => {
  11. const spec = require(path.resolve(redosDir, file));
  12. const before = process.hrtime();
  13. expect(spec).toRender(spec.html);
  14. const elapsed = process.hrtime(before);
  15. if (elapsed[0] > 0) {
  16. const s = (elapsed[0] + elapsed[1] * 1e-9).toFixed(3);
  17. fail(`took too long: ${s}s`);
  18. }
  19. });
  20. });
  21. });