Set up some meaningful e2e tests.
This commit is contained in:
		
							parent
							
								
									f8354aea73
								
							
						
					
					
						commit
						aca588f6b5
					
				
					 2 changed files with 55 additions and 19 deletions
				
			
		|  | @ -7,8 +7,25 @@ describe('convertorizr App', () => { | ||||||
|     page = new ConvertorizrPage(); |     page = new ConvertorizrPage(); | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   it('should display message saying app works', () => { |   it('should display a textarea that is initially empty', () => { | ||||||
|     page.navigateTo(); |     page.navigateTo() | ||||||
|     expect(page.getInputfieldContent(0)).toEqual(''); |       .then(() => page.getInputFieldContent(0)) | ||||||
|  |       .then((value: string) => { | ||||||
|  |         expect(value).toEqual(''); | ||||||
|  |       }); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it('should convert a string to its base64 representation', () => { | ||||||
|  |     page.navigateTo() | ||||||
|  |       .then(() => page.setInputFieldContent(0, 'Hello, World!')) | ||||||
|  |       .then(() => page.getSelectedConverterOption(0)) | ||||||
|  |       .then((option: string) => { | ||||||
|  |         expect(option).toEqual('Select conversion ...'); | ||||||
|  |       }) | ||||||
|  |       .then(() => page.selectConverterOption(0, 'Encode Base 64')) | ||||||
|  |       .then(() => page.getInputFieldContent(1)) | ||||||
|  |       .then((content: string) => { | ||||||
|  |         expect(content).toEqual('SGVsbG8sIFdvcmxkIQ=='); | ||||||
|  |       }); | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -1,25 +1,44 @@ | ||||||
| import {browser, by, element} from 'protractor'; | import {browser, by, element, ElementFinder} from 'protractor'; | ||||||
|  | import {promise, WebElementPromise} from 'selenium-webdriver'; | ||||||
| 
 | 
 | ||||||
| export class ConvertorizrPage { | export class ConvertorizrPage { | ||||||
|   navigateTo() { |   navigateTo(): promise.Promise<any> { | ||||||
|     return browser.get('/'); |     return browser.get('/'); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   public foo() { |   private getInputField(index: number): WebElementPromise { | ||||||
|     return 'bar'; |     return element | ||||||
|  |       .all(by.css('app-root div.inputwrapper')) | ||||||
|  |       .get(index) | ||||||
|  |       .element(by.css('.textwrapper textarea')) | ||||||
|  |       .getWebElement(); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   public getInputfieldContent(index: number): Promise<any> { |   getInputFieldContent(index: number): promise.Promise<string> { | ||||||
|     const css1 = by.css('app-root div.inputwrapper'); |     return this.getInputField(index).getText(); | ||||||
|     console.log(css1); |   } | ||||||
|     const el1 = element.all(css1)[index]; | 
 | ||||||
|     console.log(el1); |   setInputFieldContent(index: number, content: string): promise.Promise<void> { | ||||||
|     const css2 = by.css('.textwrapper textarea'); |     return this.getInputField(index).sendKeys(content); | ||||||
|     console.log(css2); |   } | ||||||
|     const el2 = el1.findElement(css2); | 
 | ||||||
|     console.log(el2); |   private getConverterDropdown(index: number): ElementFinder { | ||||||
|     const t = el2.getText(); |     return element | ||||||
|     console.log(t); |       .all(by.css('app-root div.inputwrapper')) | ||||||
|     return t; |       .get(index) | ||||||
|  |       .element(by.css('.selectwrapper select')); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   getSelectedConverterOption(index: number): promise.Promise<string> { | ||||||
|  |     return this.getConverterDropdown(index) | ||||||
|  |       .$('option:checked') | ||||||
|  |       .getWebElement() | ||||||
|  |       .getText(); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   selectConverterOption(index: number, optionName: string): promise.Promise<void> { | ||||||
|  |     return this.getConverterDropdown(index) | ||||||
|  |       .element(by.cssContainingText('option', optionName)) | ||||||
|  |       .click(); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue