78 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Configuration for the Wallaby Visual Studio Code testing extension
 | 
						|
// https://marketplace.visualstudio.com/items?itemName=WallabyJs.wallaby-vscode
 | 
						|
// Note: Wallaby is not open source and costs money
 | 
						|
 | 
						|
module.exports = function () {
 | 
						|
 | 
						|
  return {
 | 
						|
    files: [
 | 
						|
      // System.js for module loading
 | 
						|
      {pattern: 'node_modules/systemjs/dist/system.js', instrument: false},
 | 
						|
      {pattern: 'systemjs.config.js', instrument: false},
 | 
						|
 | 
						|
      // Polyfills
 | 
						|
      {pattern: 'node_modules/core-js/client/shim.min.js', instrument: false},
 | 
						|
 | 
						|
      // Reflect, Zone.js, and test shims
 | 
						|
      // Rx.js, Angular 2 itself, and the testing library not here because loaded by systemjs
 | 
						|
      {pattern: 'node_modules/reflect-metadata/Reflect.js', instrument: false},
 | 
						|
      {pattern: 'node_modules/zone.js/dist/zone.js', instrument: false},
 | 
						|
      {pattern: 'node_modules/zone.js/dist/jasmine-patch.js', instrument: false},
 | 
						|
      {pattern: 'node_modules/zone.js/dist/async-test.js', instrument: false},
 | 
						|
      {pattern: 'node_modules/zone.js/dist/fake-async-test.js', instrument: false},
 | 
						|
 | 
						|
      {pattern: 'app/**/*+(ts|html|css)', load: false},
 | 
						|
      {pattern: 'app/**/*.spec.ts', ignore: true}
 | 
						|
    ],
 | 
						|
 | 
						|
    tests: [
 | 
						|
      {pattern: 'app/**/*.spec.ts', load: false}
 | 
						|
    ],
 | 
						|
 | 
						|
    middleware: function (app, express) {
 | 
						|
      app.use('/node_modules', express.static(require('path').join(__dirname, 'node_modules')));
 | 
						|
    },
 | 
						|
 | 
						|
    testFramework: 'jasmine',
 | 
						|
 | 
						|
    debug: true,
 | 
						|
 | 
						|
    bootstrap: function (wallaby) {
 | 
						|
      wallaby.delayStart();
 | 
						|
 | 
						|
      System.config({
 | 
						|
        packageWithIndex: true // sadly, we can't use umd packages (yet?)
 | 
						|
      });
 | 
						|
 | 
						|
      System.import('systemjs.config.js')
 | 
						|
        .then(function () {
 | 
						|
          return Promise.all([
 | 
						|
            System.import('@angular/core/testing'),
 | 
						|
            System.import('@angular/platform-browser-dynamic/testing')
 | 
						|
          ])
 | 
						|
        })
 | 
						|
        .then(function (providers) {
 | 
						|
          var testing = providers[0];
 | 
						|
          var testingBrowser = providers[1];
 | 
						|
 | 
						|
          testing.setBaseTestProviders(
 | 
						|
            testingBrowser.TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
 | 
						|
            testingBrowser.TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS);
 | 
						|
 | 
						|
          // Load all spec files
 | 
						|
          return Promise.all(wallaby.tests.map(function (specFile) {
 | 
						|
            return System.import(specFile);
 | 
						|
          }));
 | 
						|
        })
 | 
						|
        .then(function () {
 | 
						|
          wallaby.start();
 | 
						|
        })
 | 
						|
        .catch(function (e) {
 | 
						|
          setTimeout(function () {
 | 
						|
            throw e;
 | 
						|
          }, 0);
 | 
						|
        });
 | 
						|
    }
 | 
						|
  };
 | 
						|
};
 |