From 2c27f31263d388a166c5833b4db215255f51c8f8 Mon Sep 17 00:00:00 2001 From: Nik Butenko Date: Thu, 16 Jun 2016 21:35:03 +1000 Subject: [PATCH] Run tests with Karma test runner Closes gh-566. --- .jshintrc | 3 +++ karma.conf.js | 55 ++++++++++++++++++++++++++++++++++++++++++++ package.json | 9 ++++++-- test/bootstrap.js | 12 ++++++++++ test/core_tests.html | 23 ------------------ 5 files changed, 77 insertions(+), 25 deletions(-) create mode 100644 karma.conf.js create mode 100644 test/bootstrap.js delete mode 100644 test/core_tests.html diff --git a/.jshintrc b/.jshintrc index 65340fe..8f8436d 100644 --- a/.jshintrc +++ b/.jshintrc @@ -1,4 +1,7 @@ { + "globals": { + "module": true + }, "boss": true, "curly": true, "eqeqeq": true, diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..4844c94 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,55 @@ +module.exports = function( config ) { + config.set( { + + // Base path, that will be used to resolve files and exclude + basePath: "", + + // Frameworks to use + frameworks: [ "qunit" ], + + // List of files / patterns to load in the browser + files: [ + "test/bootstrap.js", + "js/impress.js", + "test/core_tests.js" + ], + + // List of files to exclude + exclude: [], + + // Test results reporter to use + // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage' + reporters: [ "progress" ], + + // Web server port + port: 9876, + + // Enable / disable colors in the output (reporters and logs) + colors: true, + + // Level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || + // config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_DEBUG, + + // Enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + // Start these browsers, currently available: + // - Chrome + // - ChromeCanary + // - Firefox + // - Opera (has to be installed with `npm install karma-opera-launcher`) + // - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`) + // - PhantomJS + // - IE (only Windows; has to be installed with `npm install karma-ie-launcher`) + browsers: [ "Chrome" ], + + // If browser does not capture in given timeout [ms], kill it + captureTimeout: 60000, + + // Continuous Integration mode + // if true, it capture browsers, run tests and exit + singleRun: false + } ); +}; diff --git a/package.json b/package.json index c1da08c..6f6ef6e 100644 --- a/package.json +++ b/package.json @@ -22,13 +22,18 @@ "url": "https://github.com/bartaz/impress.js/issues" }, "scripts": { - "lint": "jshint js/impress.js && jscs js/impress.js --preset=jquery", - "test": "chrome test/core_tests.html" + "lint": "jshint js/impress.js *.js test/bootstrap.js && jscs js/impress.js *.js test/bootstrap.js --preset=jquery", + "test": "karma start --single-run", + "test:dev": "karma start" }, "devDependencies": { "chrome": "0.1.0", "jscs": "2.11.0", "jshint": "2.9.1", + "karma": "0.13.22", + "karma-chrome-launcher": "1.0.1", + "karma-cli": "1.0.0", + "karma-qunit": "1.0.0", "qunitjs": "2.0.0-rc1" } } diff --git a/test/bootstrap.js b/test/bootstrap.js new file mode 100644 index 0000000..6a315e8 --- /dev/null +++ b/test/bootstrap.js @@ -0,0 +1,12 @@ +/*jshint browser:true */ + +var root = document.createElement( "div" ); +root.innerHTML = [ + "
", + "
First slide
", + "
Second slide
", + "
Third slide
", + "
Fourth slide
", + "
" +].join( "" ); +document.body.appendChild( root ); diff --git a/test/core_tests.html b/test/core_tests.html deleted file mode 100644 index 730e2df..0000000 --- a/test/core_tests.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Core Tests - - - - -
-
First slide
-
Second slide
-
Third slide
-
Fourth slide
-
- -
- - - - - -