| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  | /* tslint:disable */ | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | // Simulate a simple test
 | 
					
						
							|  |  |  | // Reader should look to the testing chapter for the real thing
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-03 14:06:32 +02:00
										 |  |  | import { Component }           from '@angular/core'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import { HeroService }         from './heroes/hero.service'; | 
					
						
							|  |  |  | import { HeroListComponent }   from './heroes/hero-list.component'; | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | @Component({ | 
					
						
							|  |  |  |   selector: 'my-tests', | 
					
						
							|  |  |  |   template: `
 | 
					
						
							|  |  |  |     <h2>Tests</h2> | 
					
						
							|  |  |  |     <p id="tests">Tests {{results.pass}}: {{results.message}}</p> | 
					
						
							|  |  |  |   `
 | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | export class TestComponent { | 
					
						
							|  |  |  |   results = runTests(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /////////////////////////////////////
 | 
					
						
							|  |  |  | function runTests() { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |   // #docregion spec
 | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  |   let expectedHeroes = [{name: 'A'}, {name: 'B'}] | 
					
						
							|  |  |  |   let mockService = <HeroService> {getHeroes: () => expectedHeroes } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |   it('should have heroes when HeroListComponent created', () => { | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  |     let hlc = new HeroListComponent(mockService); | 
					
						
							|  |  |  |     expect(hlc.heroes.length).toEqual(expectedHeroes.length); | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |   }); | 
					
						
							|  |  |  |   // #enddocregion spec
 | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   return testResults; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //////////////////////////////////
 | 
					
						
							|  |  |  | // Fake Jasmine infrastructure
 | 
					
						
							| 
									
										
										
										
											2016-06-03 11:16:46 -07:00
										 |  |  | var testName: string; | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  | var testResults: {pass: string; message: string}; | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  | function expect(actual: any) { | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  |   return { | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |     toEqual: function(expected: any){ | 
					
						
							|  |  |  |       testResults = actual === expected ? | 
					
						
							|  |  |  |         {pass: 'passed', message: testName} : | 
					
						
							|  |  |  |         {pass: 'failed', message: `${testName}; expected ${actual} to equal ${expected}.`}; | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  |   }; | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 01:06:25 +02:00
										 |  |  | function it(label: string, test: () => void) { | 
					
						
							| 
									
										
										
										
											2016-01-11 13:49:12 +01:00
										 |  |  |   testName = label; | 
					
						
							|  |  |  |   test(); | 
					
						
							| 
									
										
										
										
											2016-05-03 14:06:32 +02:00
										 |  |  | } |