e3b049cefd
* 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
127 lines
2.9 KiB
JavaScript
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
|
|
});
|
|
};
|