Leaflet/spec/karma.conf.js

127 lines
2.9 KiB
JavaScript
Raw Normal View History

ES6 modules & Rollup (#4989) * WIP ES6 modules & rollup * WIP ES6 modules & rollup 2 * WIP ES6 modules & rollup 3 * WIP ES6 modules Browser * WIP ES6 module fixes * WIP ES6 modules: simpler browser exports * WIP ES6: refactor CRS/Projection modules, CRS obj -> CRS.Base * get rid of unnecessary index.js * WIP ES6 modules, dom events and stuff * Make linter happy, rollup to dist/ * revert to CRS namespace/class for now * WIP rollup: export more stuff * export controls * rollup: export Layer * rollup: export DomEvent * rollup: export more layer types * rollup: export Popup/Tooltip * WIP: ES6-ify marker, icon, domutil, draggable. * ES6-ify gridlayer, tilelayer. * ES6-ify: Tweak imports-exports, code is now runnable!! * ES6-ify: Fix scope in some DomUtils * ES6-ify: Path, fix Popup * ES6-ify: Lint & cleanup * ES6-ify map handlers, more linting * ES6-ify: Icon.Default namespacing * ES6-ify: Renderers, CircleMarker * ES6-ify: Circle, Polyline, LineUtil * ES6-ify: Polygon, Rectangle, LineUtil, PolyUtil, linting * ES6-ify: SVG.VML * ES6-ify: DomEvent.Pointer, DomEvent.DoubleTap * ES6-ify: Linting, make Karma play nice with Rollup * ES6-ify: More work on fixing bits breaking some unit tests. * ES6-ify: rollup the version number, fiddled with build scripts * ES6-ify: Fiddle with test scripts * ES6-ify: cleanup (refs to global L, imports from (DOM)Util), prevent cyclic loop on Map imports * ES6-ify: More cleanup of (DOM)Util/Browser/DomEvent imports * ES6ify: Use rollup's "legacy" option for ES3 (IE8) builds * ES6-ify: Clean up build scripts, fix CONTRIBUTING.md instructions * Typo * ES6-ify: minor fixes and lefovers after rebasing on top of 1.0.2 * ES6-ify: upgrade to rollup 0.38 for proper IE8 builds, fix L.SVG.VML * Make linter happy. * ES6: Fixing typos and sxrew-ups after big rebase * Fix symlink for debugging scripts * ES6: Cleanup old build scripts * ES6-ify: Update build system to include git rev in L.version * ES6-ify: re-enable unit tests replacing L.Path with L.Polyline * Export Path * ES6ify: cleanup old banner file * ES6-ify: whitespace in var declarations * ES6-ify: Export toTransformation as L.transformation * ES6-ify: cleanup L.transform exports * ES6-ify: "import Util" in Transformation and SVG.VML
2017-01-30 18:35:16 +08:00
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;`;
2013-04-04 05:10:30 +08:00
// Karma configuration
module.exports = function (config) {
2013-01-20 15:04:06 +08:00
ES6 modules & Rollup (#4989) * WIP ES6 modules & rollup * WIP ES6 modules & rollup 2 * WIP ES6 modules & rollup 3 * WIP ES6 modules Browser * WIP ES6 module fixes * WIP ES6 modules: simpler browser exports * WIP ES6: refactor CRS/Projection modules, CRS obj -> CRS.Base * get rid of unnecessary index.js * WIP ES6 modules, dom events and stuff * Make linter happy, rollup to dist/ * revert to CRS namespace/class for now * WIP rollup: export more stuff * export controls * rollup: export Layer * rollup: export DomEvent * rollup: export more layer types * rollup: export Popup/Tooltip * WIP: ES6-ify marker, icon, domutil, draggable. * ES6-ify gridlayer, tilelayer. * ES6-ify: Tweak imports-exports, code is now runnable!! * ES6-ify: Fix scope in some DomUtils * ES6-ify: Path, fix Popup * ES6-ify: Lint & cleanup * ES6-ify map handlers, more linting * ES6-ify: Icon.Default namespacing * ES6-ify: Renderers, CircleMarker * ES6-ify: Circle, Polyline, LineUtil * ES6-ify: Polygon, Rectangle, LineUtil, PolyUtil, linting * ES6-ify: SVG.VML * ES6-ify: DomEvent.Pointer, DomEvent.DoubleTap * ES6-ify: Linting, make Karma play nice with Rollup * ES6-ify: More work on fixing bits breaking some unit tests. * ES6-ify: rollup the version number, fiddled with build scripts * ES6-ify: Fiddle with test scripts * ES6-ify: cleanup (refs to global L, imports from (DOM)Util), prevent cyclic loop on Map imports * ES6-ify: More cleanup of (DOM)Util/Browser/DomEvent imports * ES6ify: Use rollup's "legacy" option for ES3 (IE8) builds * ES6-ify: Clean up build scripts, fix CONTRIBUTING.md instructions * Typo * ES6-ify: minor fixes and lefovers after rebasing on top of 1.0.2 * ES6-ify: upgrade to rollup 0.38 for proper IE8 builds, fix L.SVG.VML * Make linter happy. * ES6: Fixing typos and sxrew-ups after big rebase * Fix symlink for debugging scripts * ES6: Cleanup old build scripts * ES6-ify: Update build system to include git rev in L.version * ES6-ify: re-enable unit tests replacing L.Path with L.Polyline * Export Path * ES6ify: cleanup old banner file * ES6-ify: whitespace in var declarations * ES6-ify: Export toTransformation as L.transformation * ES6-ify: cleanup L.transform exports * ES6-ify: "import Util" in Transformation and SVG.VML
2017-01-30 18:35:16 +08:00
// var libSources = require(__dirname + '/../build/build.js').getFiles();
2013-01-30 22:06:19 +08:00
var files = [
ES6 modules & Rollup (#4989) * WIP ES6 modules & rollup * WIP ES6 modules & rollup 2 * WIP ES6 modules & rollup 3 * WIP ES6 modules Browser * WIP ES6 module fixes * WIP ES6 modules: simpler browser exports * WIP ES6: refactor CRS/Projection modules, CRS obj -> CRS.Base * get rid of unnecessary index.js * WIP ES6 modules, dom events and stuff * Make linter happy, rollup to dist/ * revert to CRS namespace/class for now * WIP rollup: export more stuff * export controls * rollup: export Layer * rollup: export DomEvent * rollup: export more layer types * rollup: export Popup/Tooltip * WIP: ES6-ify marker, icon, domutil, draggable. * ES6-ify gridlayer, tilelayer. * ES6-ify: Tweak imports-exports, code is now runnable!! * ES6-ify: Fix scope in some DomUtils * ES6-ify: Path, fix Popup * ES6-ify: Lint & cleanup * ES6-ify map handlers, more linting * ES6-ify: Icon.Default namespacing * ES6-ify: Renderers, CircleMarker * ES6-ify: Circle, Polyline, LineUtil * ES6-ify: Polygon, Rectangle, LineUtil, PolyUtil, linting * ES6-ify: SVG.VML * ES6-ify: DomEvent.Pointer, DomEvent.DoubleTap * ES6-ify: Linting, make Karma play nice with Rollup * ES6-ify: More work on fixing bits breaking some unit tests. * ES6-ify: rollup the version number, fiddled with build scripts * ES6-ify: Fiddle with test scripts * ES6-ify: cleanup (refs to global L, imports from (DOM)Util), prevent cyclic loop on Map imports * ES6-ify: More cleanup of (DOM)Util/Browser/DomEvent imports * ES6ify: Use rollup's "legacy" option for ES3 (IE8) builds * ES6-ify: Clean up build scripts, fix CONTRIBUTING.md instructions * Typo * ES6-ify: minor fixes and lefovers after rebasing on top of 1.0.2 * ES6-ify: upgrade to rollup 0.38 for proper IE8 builds, fix L.SVG.VML * Make linter happy. * ES6: Fixing typos and sxrew-ups after big rebase * Fix symlink for debugging scripts * ES6: Cleanup old build scripts * ES6-ify: Update build system to include git rev in L.version * ES6-ify: re-enable unit tests replacing L.Path with L.Polyline * Export Path * ES6ify: cleanup old banner file * ES6-ify: whitespace in var declarations * ES6-ify: Export toTransformation as L.transformation * ES6-ify: cleanup L.transform exports * ES6-ify: "import Util" in Transformation and SVG.VML
2017-01-30 18:35:16 +08:00
"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}
ES6 modules & Rollup (#4989) * WIP ES6 modules & rollup * WIP ES6 modules & rollup 2 * WIP ES6 modules & rollup 3 * WIP ES6 modules Browser * WIP ES6 module fixes * WIP ES6 modules: simpler browser exports * WIP ES6: refactor CRS/Projection modules, CRS obj -> CRS.Base * get rid of unnecessary index.js * WIP ES6 modules, dom events and stuff * Make linter happy, rollup to dist/ * revert to CRS namespace/class for now * WIP rollup: export more stuff * export controls * rollup: export Layer * rollup: export DomEvent * rollup: export more layer types * rollup: export Popup/Tooltip * WIP: ES6-ify marker, icon, domutil, draggable. * ES6-ify gridlayer, tilelayer. * ES6-ify: Tweak imports-exports, code is now runnable!! * ES6-ify: Fix scope in some DomUtils * ES6-ify: Path, fix Popup * ES6-ify: Lint & cleanup * ES6-ify map handlers, more linting * ES6-ify: Icon.Default namespacing * ES6-ify: Renderers, CircleMarker * ES6-ify: Circle, Polyline, LineUtil * ES6-ify: Polygon, Rectangle, LineUtil, PolyUtil, linting * ES6-ify: SVG.VML * ES6-ify: DomEvent.Pointer, DomEvent.DoubleTap * ES6-ify: Linting, make Karma play nice with Rollup * ES6-ify: More work on fixing bits breaking some unit tests. * ES6-ify: rollup the version number, fiddled with build scripts * ES6-ify: Fiddle with test scripts * ES6-ify: cleanup (refs to global L, imports from (DOM)Util), prevent cyclic loop on Map imports * ES6-ify: More cleanup of (DOM)Util/Browser/DomEvent imports * ES6ify: Use rollup's "legacy" option for ES3 (IE8) builds * ES6-ify: Clean up build scripts, fix CONTRIBUTING.md instructions * Typo * ES6-ify: minor fixes and lefovers after rebasing on top of 1.0.2 * ES6-ify: upgrade to rollup 0.38 for proper IE8 builds, fix L.SVG.VML * Make linter happy. * ES6: Fixing typos and sxrew-ups after big rebase * Fix symlink for debugging scripts * ES6: Cleanup old build scripts * ES6-ify: Update build system to include git rev in L.version * ES6-ify: re-enable unit tests replacing L.Path with L.Polyline * Export Path * ES6ify: cleanup old banner file * ES6-ify: whitespace in var declarations * ES6-ify: Export toTransformation as L.transformation * ES6-ify: cleanup L.transform exports * ES6-ify: "import Util" in Transformation and SVG.VML
2017-01-30 18:35:16 +08:00
];
2013-01-20 15:04:06 +08:00
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: '../',
2013-01-20 15:04:06 +08:00
2013-12-02 22:21:41 +08:00
plugins: [
'karma-rollup-preprocessor',
2013-12-02 22:21:41 +08:00
'karma-mocha',
'karma-sinon',
'karma-expect',
2013-12-02 22:21:41 +08:00
'karma-coverage',
'karma-phantomjs-launcher',
2014-03-20 02:53:39 +08:00
'karma-chrome-launcher',
'karma-safari-launcher',
'karma-firefox-launcher'],
2013-01-20 15:04:06 +08:00
// frameworks to use
frameworks: ['mocha', 'sinon', 'expect'],
2013-01-20 15:04:06 +08:00
// list of files / patterns to load in the browser
files: files,
proxies: {
'/base/dist/images/': 'dist/images/'
},
exclude: [],
2013-01-20 15:04:06 +08:00
ES6 modules & Rollup (#4989) * WIP ES6 modules & rollup * WIP ES6 modules & rollup 2 * WIP ES6 modules & rollup 3 * WIP ES6 modules Browser * WIP ES6 module fixes * WIP ES6 modules: simpler browser exports * WIP ES6: refactor CRS/Projection modules, CRS obj -> CRS.Base * get rid of unnecessary index.js * WIP ES6 modules, dom events and stuff * Make linter happy, rollup to dist/ * revert to CRS namespace/class for now * WIP rollup: export more stuff * export controls * rollup: export Layer * rollup: export DomEvent * rollup: export more layer types * rollup: export Popup/Tooltip * WIP: ES6-ify marker, icon, domutil, draggable. * ES6-ify gridlayer, tilelayer. * ES6-ify: Tweak imports-exports, code is now runnable!! * ES6-ify: Fix scope in some DomUtils * ES6-ify: Path, fix Popup * ES6-ify: Lint & cleanup * ES6-ify map handlers, more linting * ES6-ify: Icon.Default namespacing * ES6-ify: Renderers, CircleMarker * ES6-ify: Circle, Polyline, LineUtil * ES6-ify: Polygon, Rectangle, LineUtil, PolyUtil, linting * ES6-ify: SVG.VML * ES6-ify: DomEvent.Pointer, DomEvent.DoubleTap * ES6-ify: Linting, make Karma play nice with Rollup * ES6-ify: More work on fixing bits breaking some unit tests. * ES6-ify: rollup the version number, fiddled with build scripts * ES6-ify: Fiddle with test scripts * ES6-ify: cleanup (refs to global L, imports from (DOM)Util), prevent cyclic loop on Map imports * ES6-ify: More cleanup of (DOM)Util/Browser/DomEvent imports * ES6ify: Use rollup's "legacy" option for ES3 (IE8) builds * ES6-ify: Clean up build scripts, fix CONTRIBUTING.md instructions * Typo * ES6-ify: minor fixes and lefovers after rebasing on top of 1.0.2 * ES6-ify: upgrade to rollup 0.38 for proper IE8 builds, fix L.SVG.VML * Make linter happy. * ES6: Fixing typos and sxrew-ups after big rebase * Fix symlink for debugging scripts * ES6: Cleanup old build scripts * ES6-ify: Update build system to include git rev in L.version * ES6-ify: re-enable unit tests replacing L.Path with L.Polyline * Export Path * ES6ify: cleanup old banner file * ES6-ify: whitespace in var declarations * ES6-ify: Export toTransformation as L.transformation * ES6-ify: cleanup L.transform exports * ES6-ify: "import Util" in Transformation and SVG.VML
2017-01-30 18:35:16 +08:00
// Rollup the ES6 Leaflet sources into just one file, before tests
preprocessors: preprocessors,
ES6 modules & Rollup (#4989) * WIP ES6 modules & rollup * WIP ES6 modules & rollup 2 * WIP ES6 modules & rollup 3 * WIP ES6 modules Browser * WIP ES6 module fixes * WIP ES6 modules: simpler browser exports * WIP ES6: refactor CRS/Projection modules, CRS obj -> CRS.Base * get rid of unnecessary index.js * WIP ES6 modules, dom events and stuff * Make linter happy, rollup to dist/ * revert to CRS namespace/class for now * WIP rollup: export more stuff * export controls * rollup: export Layer * rollup: export DomEvent * rollup: export more layer types * rollup: export Popup/Tooltip * WIP: ES6-ify marker, icon, domutil, draggable. * ES6-ify gridlayer, tilelayer. * ES6-ify: Tweak imports-exports, code is now runnable!! * ES6-ify: Fix scope in some DomUtils * ES6-ify: Path, fix Popup * ES6-ify: Lint & cleanup * ES6-ify map handlers, more linting * ES6-ify: Icon.Default namespacing * ES6-ify: Renderers, CircleMarker * ES6-ify: Circle, Polyline, LineUtil * ES6-ify: Polygon, Rectangle, LineUtil, PolyUtil, linting * ES6-ify: SVG.VML * ES6-ify: DomEvent.Pointer, DomEvent.DoubleTap * ES6-ify: Linting, make Karma play nice with Rollup * ES6-ify: More work on fixing bits breaking some unit tests. * ES6-ify: rollup the version number, fiddled with build scripts * ES6-ify: Fiddle with test scripts * ES6-ify: cleanup (refs to global L, imports from (DOM)Util), prevent cyclic loop on Map imports * ES6-ify: More cleanup of (DOM)Util/Browser/DomEvent imports * ES6ify: Use rollup's "legacy" option for ES3 (IE8) builds * ES6-ify: Clean up build scripts, fix CONTRIBUTING.md instructions * Typo * ES6-ify: minor fixes and lefovers after rebasing on top of 1.0.2 * ES6-ify: upgrade to rollup 0.38 for proper IE8 builds, fix L.SVG.VML * Make linter happy. * ES6: Fixing typos and sxrew-ups after big rebase * Fix symlink for debugging scripts * ES6: Cleanup old build scripts * ES6-ify: Update build system to include git rev in L.version * ES6-ify: re-enable unit tests replacing L.Path with L.Polyline * Export Path * ES6ify: cleanup old banner file * ES6-ify: whitespace in var declarations * ES6-ify: Export toTransformation as L.transformation * ES6-ify: cleanup L.transform exports * ES6-ify: "import Util" in Transformation and SVG.VML
2017-01-30 18:35:16 +08:00
rollupPreprocessor: {
plugins: [
json()
],
format: 'umd',
name: 'L',
outro: outro
ES6 modules & Rollup (#4989) * WIP ES6 modules & rollup * WIP ES6 modules & rollup 2 * WIP ES6 modules & rollup 3 * WIP ES6 modules Browser * WIP ES6 module fixes * WIP ES6 modules: simpler browser exports * WIP ES6: refactor CRS/Projection modules, CRS obj -> CRS.Base * get rid of unnecessary index.js * WIP ES6 modules, dom events and stuff * Make linter happy, rollup to dist/ * revert to CRS namespace/class for now * WIP rollup: export more stuff * export controls * rollup: export Layer * rollup: export DomEvent * rollup: export more layer types * rollup: export Popup/Tooltip * WIP: ES6-ify marker, icon, domutil, draggable. * ES6-ify gridlayer, tilelayer. * ES6-ify: Tweak imports-exports, code is now runnable!! * ES6-ify: Fix scope in some DomUtils * ES6-ify: Path, fix Popup * ES6-ify: Lint & cleanup * ES6-ify map handlers, more linting * ES6-ify: Icon.Default namespacing * ES6-ify: Renderers, CircleMarker * ES6-ify: Circle, Polyline, LineUtil * ES6-ify: Polygon, Rectangle, LineUtil, PolyUtil, linting * ES6-ify: SVG.VML * ES6-ify: DomEvent.Pointer, DomEvent.DoubleTap * ES6-ify: Linting, make Karma play nice with Rollup * ES6-ify: More work on fixing bits breaking some unit tests. * ES6-ify: rollup the version number, fiddled with build scripts * ES6-ify: Fiddle with test scripts * ES6-ify: cleanup (refs to global L, imports from (DOM)Util), prevent cyclic loop on Map imports * ES6-ify: More cleanup of (DOM)Util/Browser/DomEvent imports * ES6ify: Use rollup's "legacy" option for ES3 (IE8) builds * ES6-ify: Clean up build scripts, fix CONTRIBUTING.md instructions * Typo * ES6-ify: minor fixes and lefovers after rebasing on top of 1.0.2 * ES6-ify: upgrade to rollup 0.38 for proper IE8 builds, fix L.SVG.VML * Make linter happy. * ES6: Fixing typos and sxrew-ups after big rebase * Fix symlink for debugging scripts * ES6: Cleanup old build scripts * ES6-ify: Update build system to include git rev in L.version * ES6-ify: re-enable unit tests replacing L.Path with L.Polyline * Export Path * ES6ify: cleanup old banner file * ES6-ify: whitespace in var declarations * ES6-ify: Export toTransformation as L.transformation * ES6-ify: cleanup L.transform exports * ES6-ify: "import Util" in Transformation and SVG.VML
2017-01-30 18:35:16 +08:00
},
// 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,
2013-01-20 15:04:06 +08:00
// web server port
port: 9876,
2013-01-20 15:04:06 +08:00
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_WARN,
2013-01-20 15:04:06 +08:00
// enable / disable colors in the output (reporters and logs)
colors: true,
2013-01-20 15:04:06 +08:00
// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,
2013-01-20 15:04:06 +08:00
// 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);
}
}
}
}
},
2013-01-20 15:04:06 +08:00
// 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
});
};