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 = [ + "