diff --git a/test/jasmine/assets/modebar_button.js b/test/jasmine/assets/modebar_button.js index ba3c1182461..33fba38e672 100644 --- a/test/jasmine/assets/modebar_button.js +++ b/test/jasmine/assets/modebar_button.js @@ -18,7 +18,7 @@ module.exports = function selectButton(modeBar, name) { button.click = function() { var ev = new window.MouseEvent('click'); - node.dispatchEvent(ev); + if(node) node.dispatchEvent(ev); }; button.isActive = function() { diff --git a/test/jasmine/assets/mouse_event.js b/test/jasmine/assets/mouse_event.js index 781b68e6cae..14bd843f078 100644 --- a/test/jasmine/assets/mouse_event.js +++ b/test/jasmine/assets/mouse_event.js @@ -45,7 +45,7 @@ module.exports = function(type, x, y, opts) { ev = new window.MouseEvent(type, fullOpts); } - el.dispatchEvent(ev); + if(el) el.dispatchEvent(ev); return el; }; diff --git a/test/jasmine/assets/touch_event.js b/test/jasmine/assets/touch_event.js index 3513bf6617b..6c411dbb007 100644 --- a/test/jasmine/assets/touch_event.js +++ b/test/jasmine/assets/touch_event.js @@ -36,10 +36,9 @@ module.exports = function(type, x, y, opts) { fullOpts.shiftKey = opts.shiftKey; } - ev = new window.TouchEvent(type, Lib.extendFlat({}, fullOpts, opts)); - el.dispatchEvent(ev); + if(el) el.dispatchEvent(ev); return el; }; diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js index 8a045467271..c7a28eabb2c 100644 --- a/test/jasmine/karma.conf.js +++ b/test/jasmine/karma.conf.js @@ -10,8 +10,9 @@ var argv = minimist(process.argv.slice(4), { string: ['bundleTest', 'width', 'height'], 'boolean': [ 'info', - 'nowatch', 'failFast', 'verbose', 'randomize', - 'Chrome', 'Firefox', 'IE11' + 'nowatch', 'failFast', 'randomize', + 'Chrome', 'Firefox', 'IE11', + 'verbose', 'showSkipped', 'report-progress', 'report-spec', 'report-dots' ], alias: { 'Chrome': 'chrome', @@ -24,11 +25,12 @@ var argv = minimist(process.argv.slice(4), { 'default': { info: false, nowatch: isCI, - failFast: false, - verbose: false, randomize: false, + failFast: false, width: '1035', - height: '617' + height: '617', + verbose: false, + showSkipped: isCI } }); @@ -64,12 +66,15 @@ if(argv.info) { ' - `--IE11` (alias -- `ie11`)`: run test in IE11 browser', ' - `--nowatch (dflt: `false`, `true` on CI)`: run karma w/o `autoWatch` / multiple run mode', ' - `--failFast` (dflt: `false`): exit karma upon first test failure', - ' - `--verbose` (dflt: `false`): show test result using verbose reporter', - ' - `--showSkipped` (dflt: `false`): show tests that are skipped', ' - `--randomize` (dflt: `false`): randomize test ordering (useful to detect bad test teardown)', ' - `--tags`: run only test with given tags (using the `jasmine-spec-tags` framework)', ' - `--width`(dflt: 1035): set width of the browser window', ' - `--height` (dflt: 617): set height of the browser window', + ' - `--verbose` (dflt: `false`): show test result using verbose reporter', + ' - `--showSkipped` show tests that are skipped', + ' - `--report-progress`: use *progress* reporter', + ' - `--report-spec`: use *spec* reporter', + ' - `--report-dots`: use *dots* reporter', '', 'For info on the karma CLI options run `npm run test-jasmine -- --help`' ].join('\n')); @@ -119,7 +124,26 @@ var pathToCustomMatchers = path.join(__dirname, 'assets', 'custom_matchers.js'); var pathToUnpolyfill = path.join(__dirname, 'assets', 'unpolyfill.js'); var pathToMathJax = path.join(constants.pathToDist, 'extras', 'mathjax'); -var reporters = ((isFullSuite && !argv.tags) || argv.showSkipped) ? ['dots', 'spec'] : ['progress']; +var reporters = []; +if(argv['report-progress'] || argv['report-spec'] || argv['report-dots']) { + if(argv['report-progress']) reporters.push('progress'); + if(argv['report-spec']) reporters.push('spec'); + if(argv['report-dots']) reporters.push('dots'); +} else { + if(isCI) { + reporters.push('spec'); + } else { + if(isFullSuite) { + reporters.push('dots'); + } else { + reporters.push('progress'); + } + } +} + +var hasSpecReporter = reporters.indexOf('spec') !== -1; + +if(!hasSpecReporter && argv.showSkipped) reporters.push('spec'); if(argv.verbose) reporters.push('verbose'); function func(config) { @@ -259,13 +283,13 @@ func.defaultConfig = { } }, - // use 'karma-spec-reporter' to log info about skipped specs specReporter: { - suppressErrorSummary: true, - suppressFailed: true, - suppressPassed: true, - suppressSkipped: false, - showSpecTiming: false + suppressErrorSummary: false, + suppressFailed: !hasSpecReporter, + suppressPassed: !hasSpecReporter, + // use 'karma-spec-reporter' to log info about skipped specs + suppressSkipped: !argv.showSkipped, + showSpecTiming: true } }; diff --git a/test/jasmine/tests/annotations_test.js b/test/jasmine/tests/annotations_test.js index f7be28e5b95..f0fd23cc143 100644 --- a/test/jasmine/tests/annotations_test.js +++ b/test/jasmine/tests/annotations_test.js @@ -1547,7 +1547,9 @@ describe('annotation effects', function() { setTimeout(function() { var input = d3.select('.plugin-editable.editable'); - input.node().dispatchEvent(new KeyboardEvent('blur')); + if(input.node()) { + input.node().dispatchEvent(new KeyboardEvent('blur')); + } }, DBLCLICKDELAY * 1.1); }); }