diff --git a/.gitignore b/.gitignore index d48db0e7..e9ba91e2 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,6 @@ nosetests.xml .pydevproject .vagrant + +# Node +node_modules/ diff --git a/.travis.yml b/.travis.yml index 09218b17..ac5cef39 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,9 +15,11 @@ install: - pip install boto certauth - python setup.py -q install - pip install coverage pytest-cov coveralls --use-mirrors + - npm install script: - python setup.py test + - python setup.py test + - cd karma-tests && make test after_success: coveralls diff --git a/karma-tests/Makefile b/karma-tests/Makefile new file mode 100644 index 00000000..bb80eeec --- /dev/null +++ b/karma-tests/Makefile @@ -0,0 +1,4 @@ +NODE_BIN_DIR=../node_modules/.bin + +test: + $(NODE_BIN_DIR)/karma start --single-run diff --git a/karma-tests/karma.conf.js b/karma-tests/karma.conf.js new file mode 100644 index 00000000..61127d7d --- /dev/null +++ b/karma-tests/karma.conf.js @@ -0,0 +1,68 @@ +var WOMBAT_JS_PATH = 'pywb/static/wombat.js'; + +module.exports = function(config) { + config.set({ + + // base path that will be used to resolve all patterns (eg. files, exclude) + basePath: '../', + + + // frameworks to use + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ['mocha', 'chai'], + + + // list of files / patterns to load in the browser + files: [ + { + pattern: WOMBAT_JS_PATH, + watched: true, + included: false, + served: true, + }, + 'karma-tests/*.spec.js', + ], + + + // preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor + preprocessors: {}, + + + // test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + 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_INFO, + + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + browsers: ['Chrome'], + + + // Continuous Integration mode + // if true, Karma captures browsers, runs the tests and exits + singleRun: false, + + // Concurrency level + // how many browser should be started simultanous + concurrency: Infinity + }) +} diff --git a/karma-tests/wombat.spec.js b/karma-tests/wombat.spec.js new file mode 100644 index 00000000..a1b681af --- /dev/null +++ b/karma-tests/wombat.spec.js @@ -0,0 +1,145 @@ +var WOMBAT_SRC = '../pywb/static/wombat.js'; + +// creates a new document in an