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);
|
|
});
|
|
}
|
|
};
|
|
};
|