Leaflet/spec/karma.conf.js
Andrew e3b049cefd Chore(scripts): Remove jake dependency and use NPM scripts instead (#5828)
* run `docs` via npm

* add shebang line to integrity.js, so npm will resolve node binary automatically

* remove unnecessary build-jake npm script

* add test.js script as replacement of Jakefile.js

* remove Jakefile, remove jake from devDependencies

* update docs

* move scripts to separate directory

* change shebang line from nodejs to js

* change shebang line from js to node

* update docs

* use Karma cli instead of custom test script

* add pretest and test-nolint scripts, remove lint scripts from travis.ci

Run linting scripts in pretest script, this way test script will automatically trigger code linting.

Add test-nolint script to have possibility to run tests without triggering pretest script with linting. This is useful when running tests in different browsers and tere's no sense to lint code more than one time

* replace shebang lines with node executable in npm scripts

* remove note about nodejs symlink in CONTRIBUTING.md
2018-02-05 11:15:32 +04:00

127 lines
2.9 KiB
JavaScript

var json = require('rollup-plugin-json');
const outro = `var oldL = window.L;
exports.noConflict = function() {
window.L = oldL;
return this;
}
// Always export us to window global (see #2364)
window.L = exports;`;
// Karma configuration
module.exports = function (config) {
// var libSources = require(__dirname + '/../build/build.js').getFiles();
var files = [
"src/Leaflet.js",
"spec/after.js",
"node_modules/happen/happen.js",
"node_modules/prosthetic-hand/dist/prosthetic-hand.js",
"spec/suites/SpecHelper.js",
"spec/suites/**/*.js",
"dist/*.css",
{pattern: "dist/images/*.png", included: false, serve: true}
];
var preprocessors = {};
if (config.cov) {
preprocessors['src/**/*.js'] = ['coverage'];
}
preprocessors['src/Leaflet.js'] = ['rollup'];
config.set({
// base path, that will be used to resolve files and exclude
basePath: '../',
plugins: [
'karma-rollup-preprocessor',
'karma-mocha',
'karma-sinon',
'karma-expect',
'karma-coverage',
'karma-phantomjs-launcher',
'karma-chrome-launcher',
'karma-safari-launcher',
'karma-firefox-launcher'],
// frameworks to use
frameworks: ['mocha', 'sinon', 'expect'],
// list of files / patterns to load in the browser
files: files,
proxies: {
'/base/dist/images/': 'dist/images/'
},
exclude: [],
// Rollup the ES6 Leaflet sources into just one file, before tests
preprocessors: preprocessors,
rollupPreprocessor: {
plugins: [
json()
],
format: 'umd',
name: 'L',
outro: outro
},
// test results reporter to use
// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
reporters: config.cov ? ['dots', 'coverage'] : ['dots'],
coverageReporter: config.cov ? {type : 'html', dir : 'coverage/'} : null,
// web server port
port: 9876,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_WARN,
// enable / disable colors in the output (reporters and logs)
colors: true,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers: ['PhantomJSCustom'],
customLaunchers: {
'PhantomJSCustom': {
base: 'PhantomJS',
flags: ['--load-images=true'],
options: {
onCallback: function (data) {
if (data.render) {
page.render(data.render);
}
}
}
}
},
// If browser does not capture in given timeout [ms], kill it
captureTimeout: 5000,
// Workaround for PhantomJS random DISCONNECTED error
browserDisconnectTimeout: 10000, // default 2000
browserDisconnectTolerance: 1, // default 0
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: true
});
};