| 
									
										
										
										
											2017-02-06 19:06:13 -08:00
										 |  |  | 'use strict'; // necessary for es6 output in node
 | 
					
						
							| 
									
										
										
										
											2016-10-06 23:25:52 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | import { browser, element, by } from 'protractor'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-20 13:17:16 -08:00
										 |  |  | describe('Structural Directives', function () { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 19:06:13 -08:00
										 |  |  |   beforeAll(function () { | 
					
						
							| 
									
										
										
										
											2015-12-20 13:17:16 -08:00
										 |  |  |     browser.get(''); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 19:06:13 -08:00
										 |  |  |   it('first div should show hero name with *ngIf', function () { | 
					
						
							|  |  |  |     const allDivs = element.all(by.tagName('div')); | 
					
						
							|  |  |  |     expect(allDivs.get(0).getText()).toEqual('Mr. Nice'); | 
					
						
							| 
									
										
										
										
											2015-12-20 13:17:16 -08:00
										 |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 19:06:13 -08:00
										 |  |  |   it('first li should show hero name with *ngFor', function () { | 
					
						
							|  |  |  |     const allLis = element.all(by.tagName('li')); | 
					
						
							|  |  |  |     expect(allLis.get(0).getText()).toEqual('Mr. Nice'); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('ngSwitch have three <happy-hero> instances', function () { | 
					
						
							|  |  |  |     const happyHeroEls = element.all(by.tagName('happy-hero')); | 
					
						
							|  |  |  |     expect(happyHeroEls.count()).toEqual(3); | 
					
						
							| 
									
										
										
										
											2015-12-20 13:17:16 -08:00
										 |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 19:06:13 -08:00
										 |  |  |   it('should toggle *ngIf="hero" with a button', function () { | 
					
						
							|  |  |  |     const toggleHeroButton = element.all(by.cssContainingText('button', 'Toggle hero')).get(0); | 
					
						
							|  |  |  |     const paragraph = element.all(by.cssContainingText('p', 'I turned the corner')); | 
					
						
							|  |  |  |     expect(paragraph.get(0).getText()).toContain('I waved'); | 
					
						
							|  |  |  |     toggleHeroButton.click().then(() => { | 
					
						
							|  |  |  |       expect(paragraph.get(0).getText()).not.toContain('I waved'); | 
					
						
							| 
									
										
										
										
											2015-12-20 13:17:16 -08:00
										 |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-06 19:06:13 -08:00
										 |  |  |   it('should have only one "Hip!" (the other is erased)', function () { | 
					
						
							|  |  |  |     const paragraph = element.all(by.cssContainingText('p', 'Hip!')); | 
					
						
							|  |  |  |     expect(paragraph.count()).toEqual(1); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('myUnless should show 3 paragraph (A)s and (B)s at the start', function () { | 
					
						
							|  |  |  |     const paragraph = element.all(by.css('p.unless')); | 
					
						
							|  |  |  |     expect(paragraph.count()).toEqual(3); | 
					
						
							|  |  |  |     for (let i = 0; i < 3; i++) { | 
					
						
							|  |  |  |       expect(paragraph.get(i).getText()).toContain('(A)'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('myUnless should show 1 paragraph (B) after toggling condition', function () { | 
					
						
							|  |  |  |     const toggleConditionButton = element.all(by.cssContainingText('button', 'Toggle condition')).get(0); | 
					
						
							|  |  |  |     const paragraph = element.all(by.css('p.unless')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     toggleConditionButton.click().then(() => { | 
					
						
							|  |  |  |       expect(paragraph.count()).toEqual(1); | 
					
						
							|  |  |  |       expect(paragraph.get(0).getText()).toContain('(B)'); | 
					
						
							| 
									
										
										
										
											2015-12-20 13:17:16 -08:00
										 |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); | 
					
						
							| 
									
										
										
										
											2017-02-06 19:06:13 -08:00
										 |  |  | 
 |