| 
									
										
										
										
											2016-04-14 10:36:38 -07:00
										 |  |  | // 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
 | 
					
						
							| 
									
										
										
										
											2016-05-20 01:09:45 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-14 10:36:38 -07:00
										 |  |  | module.exports = function () { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return { | 
					
						
							|  |  |  |     files: [ | 
					
						
							| 
									
										
										
										
											2016-04-26 16:15:40 -07:00
										 |  |  |       // System.js for module loading
 | 
					
						
							| 
									
										
										
										
											2016-04-14 10:36:38 -07:00
										 |  |  |       {pattern: 'node_modules/systemjs/dist/system.js', instrument: false}, | 
					
						
							| 
									
										
										
										
											2016-05-21 14:31:22 -07:00
										 |  |  |       {pattern: 'systemjs.config.js', instrument: false}, | 
					
						
							| 
									
										
										
										
											2016-04-26 16:15:40 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |       // Polyfills
 | 
					
						
							| 
									
										
										
										
											2016-05-20 01:09:45 -07:00
										 |  |  |       {pattern: 'node_modules/core-js/client/shim.min.js', instrument: false}, | 
					
						
							| 
									
										
										
										
											2016-04-26 16:15:40 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 01:09:45 -07:00
										 |  |  |       // 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}, | 
					
						
							| 
									
										
										
										
											2016-04-14 10:36:38 -07:00
										 |  |  |       {pattern: 'node_modules/zone.js/dist/jasmine-patch.js', instrument: false}, | 
					
						
							| 
									
										
										
										
											2016-04-26 16:15:40 -07:00
										 |  |  |       {pattern: 'node_modules/zone.js/dist/async-test.js', instrument: false}, | 
					
						
							|  |  |  |       {pattern: 'node_modules/zone.js/dist/fake-async-test.js', instrument: false}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-14 10:36:38 -07:00
										 |  |  |       {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', | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 01:09:45 -07:00
										 |  |  |     debug: true, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-14 10:36:38 -07:00
										 |  |  |     bootstrap: function (wallaby) { | 
					
						
							|  |  |  |       wallaby.delayStart(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-21 14:31:22 -07:00
										 |  |  |       System.config({ | 
					
						
							|  |  |  |         packageWithIndex: true // sadly, we can't use umd packages (yet?)
 | 
					
						
							| 
									
										
										
										
											2016-04-14 10:36:38 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-21 14:31:22 -07:00
										 |  |  |       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); | 
					
						
							| 
									
										
										
										
											2016-05-20 01:09:45 -07:00
										 |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-04-14 10:36:38 -07:00
										 |  |  |   }; | 
					
						
							|  |  |  | }; |