// 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: [ {pattern: 'node_modules/es6-shim/es6-shim.js', instrument: false}, {pattern: 'node_modules/systemjs/dist/system-polyfills.js', instrument: false}, {pattern: 'node_modules/systemjs/dist/system.js', instrument: false}, {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/long-stack-trace-zone.js', instrument: false}, {pattern: 'node_modules/zone.js/dist/jasmine-patch.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', bootstrap: function (wallaby) { wallaby.delayStart(); System.config({ defaultJSExtensions: true, packages: { app: { meta: { '*': { scriptLoad: true } } } }, paths: { 'npm:*': 'node_modules/*' }, map: { 'angular2': 'npm:angular2', 'rxjs': 'npm:rxjs' } }); // Configure Angular for the browser and // with test versions of the platform providers Promise.all([ System.import('angular2/testing'), System.import('angular2/platform/testing/browser') ]) .then(function (results) { var testing = results[0]; var browser = results[1]; testing.setBaseTestProviders( browser.TEST_BROWSER_PLATFORM_PROVIDERS, browser.TEST_BROWSER_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); }); }, debug: true }; };