closes #486 add missing karma-test-shim.js update test files alpha.53 exclude example-config.json from plunkers
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Tun on full stack traces in errors to help debugging
 | 
						|
Error.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/app': {
 | 
						|
      defaultExtension: false,
 | 
						|
      // removed because of issues with raw .js files not being found.
 | 
						|
      // format: 'register',
 | 
						|
      map: Object.keys(window.__karma__.files).
 | 
						|
            filter(onlyAppFiles).
 | 
						|
            reduce(function createPathRecords(pathsMapping, appPath) {
 | 
						|
              // creates local module name mapping to global path with karma's fingerprint in path, e.g.:
 | 
						|
              // './hero.service': '/base/src/app/hero.service.js?f4523daf879cfb7310ef6242682ccf10b2041b3e'
 | 
						|
              var moduleName = appPath.replace(/^\/base\/app\//, './').replace(/\.js$/, '');
 | 
						|
              pathsMapping[moduleName] = appPath + '?' + window.__karma__.files[appPath]
 | 
						|
              return pathsMapping;
 | 
						|
            }, {})
 | 
						|
 | 
						|
      }
 | 
						|
    }
 | 
						|
});
 | 
						|
 | 
						|
// old code from angular 44
 | 
						|
// System.import('angular2/src/core/dom/browser_adapter').then(function(browser_adapter) {
 | 
						|
// new path for angular 51
 | 
						|
System.import('angular2/src/platform/browser/browser_adapter').then(function(browser_adapter) {
 | 
						|
    browser_adapter.BrowserDomAdapter.makeCurrent();
 | 
						|
}).then(function() {
 | 
						|
  return Promise.all(
 | 
						|
    Object.keys(window.__karma__.files) // All files served by Karma.
 | 
						|
    .filter(onlySpecFiles)
 | 
						|
    // .map(filePath2moduleName)        // Normalize paths to module names.
 | 
						|
    .map(function(moduleName) {
 | 
						|
      // loads all spec files via their global module names (e.g. 'base/src/app/hero.service.spec')
 | 
						|
      return System.import(moduleName);
 | 
						|
    }));
 | 
						|
})
 | 
						|
.then(function() {
 | 
						|
  __karma__.start();
 | 
						|
}, function(error) {
 | 
						|
  __karma__.error(error.stack || error);
 | 
						|
});
 | 
						|
 | 
						|
 | 
						|
function filePath2moduleName(filePath) {
 | 
						|
  return filePath.
 | 
						|
           replace(/^\//, '').              // remove / prefix
 | 
						|
           replace(/\.\w+$/, '');           // remove suffix
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
function onlyAppFiles(filePath) {
 | 
						|
  return /^\/base\/app\/.*\.js$/.test(filePath) && !onlySpecFiles(filePath);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
function onlySpecFiles(filePath) {
 | 
						|
  return /\.spec\.js$/.test(filePath);
 | 
						|
}
 |