Ravi Tuvar•3:21 AM
module.exports = function(config) { config.set({ basePath: '.', frameworks: ['jasmine'], files: [ // paths loaded by Karma {pattern: 'node_modules/angular2/bundles/angular2-polyfills.js', included: true, watched: true}, {pattern: 'node_modules/systemjs/dist/system.src.js', included: true, watched: true}, {pattern: 'node_modules/rxjs/bundles/Rx.js', included: true, watched: true}, {pattern: 'node_modules/angular2/bundles/angular2.dev.js', included: true, watched: true}, {pattern: 'node_modules/angular2/bundles/testing.dev.js', included: true, watched: true}, {pattern: 'node_modules/angular2/bundles/http.dev.js', included: true, watched: true}, {pattern: 'karma-test-shim.js', included: true, watched: true}, // paths loaded via module imports {pattern: 'dist/**/*.js', included: false, watched: true}, // paths to support debugging with source maps in dev tools {pattern: 'src/**/*.ts', included: false, watched: false}, {pattern: 'dist/**/*.js.map', included: false, watched: false} ], // proxied base paths proxies: { // required for component assests fetched by Angular's compiler '/src/': '/base/src/' }, port: 9876, logLevel: config.LOG_INFO, colors: true, autoWatch: true, browsers: ['Chrome'], // Karma plugins loaded plugins: [ 'karma-jasmine', 'karma-coverage', 'karma-chrome-launcher' ], // Coverage reporter generates the coverage reporters: ['progress', 'dots', 'coverage'], // Source files that you wanna generate coverage for. // Do not include tests or libraries (these files will be instrumented by Istanbul) preprocessors: { 'dist/**/!(*spec).js': ['coverage'] }, coverageReporter: { reporters:[ {type: 'json', subdir: '.', file: 'coverage-final.json'} ] }, singleRun: true })};// Tun on full stack traces in errors to help debuggingError.stackTraceLimit = Infinity;jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;// // Cancel Karma's synchronous start,// // we will call `__karma__.start()` later, once all the specs are loaded.__karma__.loaded = function() {};System.config({ packages: { 'base/dist': { defaultExtension: false, format: 'cjs', map: Object.keys(window.__karma__.files).filter(onlyAppFiles).reduce(createPathRecords, {}) } }});System.import('angular2/src/platform/browser/browser_adapter') .then(function(browser_adapter) { browser_adapter.BrowserDomAdapter.makeCurrent(); }) .then(function() { return Promise.all(resolveTestFiles()); }) .then(function() { __karma__.start(); }, function(error) { __karma__.error(error.stack || error); });function createPathRecords(pathsMapping, appPath) { // creates local module name mapping to global path with karma's fingerprint in path, e.g.: // './vg-player/vg-player': // '/base/dist/vg-player/vg-player.js?f4523daf879cfb7310ef6242682ccf10b2041b3e' var moduleName = './' + resolveKeyPathForMapping('base/dist/', appPath); moduleName = moduleName.replace(/\.js$/, ''); pathsMapping[moduleName] = appPath + '?' + window.__karma__.files[appPath]; return pathsMapping;}function onlyAppFiles(filePath) { return /\/base\/dist\/(?!.*\.spec\.js$).*\.js$/.test(filePath);}function onlySpecFiles(path) { return /\.spec\.js$/.test(path);}function resolveTestFiles() { return Object.keys(window.__karma__.files) // All files served by Karma. .filter(onlySpecFiles) .map(function(moduleName) { // loads all spec files via their global module names (e.g. // 'base/dist/vg-player/vg-player.spec') return System.import(moduleName); });}function resolveKeyPathForMapping(basePathWhereToStart, appPath) { var location = appPath.indexOf(basePathWhereToStart); if (location > -1) { return appPath.substring(basePathWhereToStart.length + 1); } else { return appPath; }}
Continue Reading →