configureMocha.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = configureMocha;
  6. var _mocha = require('mocha');
  7. var _mocha2 = _interopRequireDefault(_mocha);
  8. var _loadReporter = require('./loadReporter');
  9. var _loadReporter2 = _interopRequireDefault(_loadReporter);
  10. var _loadUI = require('./loadUI');
  11. var _loadUI2 = _interopRequireDefault(_loadUI);
  12. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  13. function configureMocha(options) {
  14. // infinite stack traces
  15. Error.stackTraceLimit = Infinity;
  16. // init mocha
  17. var mocha = new _mocha2.default();
  18. // reporter
  19. var reporter = (0, _loadReporter2.default)(options.reporter, options.cwd);
  20. mocha.reporter(reporter, options.reporterOptions);
  21. // colors
  22. mocha.useColors(options.colors);
  23. // inline-diffs
  24. mocha.useInlineDiffs(options.useInlineDiffs);
  25. // slow <ms>
  26. mocha.suite.slow(options.slow);
  27. // timeout <ms>
  28. if (options.timeout === 0) {
  29. mocha.enableTimeouts(false);
  30. } else {
  31. mocha.suite.timeout(options.timeout);
  32. }
  33. // bail
  34. mocha.suite.bail(options.bail);
  35. // grep
  36. if (options.grep) {
  37. mocha.grep(new RegExp(options.grep));
  38. }
  39. // fgrep
  40. if (options.fgrep) {
  41. mocha.grep(options.fgrep);
  42. }
  43. // invert
  44. if (options.invert) {
  45. mocha.invert();
  46. }
  47. // check-leaks
  48. if (options.ignoreLeaks === false) {
  49. mocha.checkLeaks();
  50. }
  51. // full-trace
  52. if (options.fullStackTrace) {
  53. mocha.fullTrace();
  54. }
  55. // growl
  56. if (options.growl) {
  57. mocha.growl();
  58. }
  59. // async-only
  60. if (options.asyncOnly) {
  61. mocha.asyncOnly();
  62. }
  63. // delay
  64. if (options.delay) {
  65. mocha.delay();
  66. }
  67. // retries
  68. if (options.retries) {
  69. mocha.suite.retries(options.retries);
  70. }
  71. // interface
  72. var ui = (0, _loadUI2.default)(options.ui, options.cwd);
  73. mocha.ui(ui);
  74. return mocha;
  75. }