added Protractor for end-to-end testing
This commit is contained in:
parent
0841d2bfb9
commit
31d518f3e1
6 changed files with 524 additions and 145 deletions
|
@ -0,0 +1,62 @@
|
|||
import { element, by, browser, $, ElementFinder, ExpectedConditions as until } from 'protractor';
|
||||
|
||||
|
||||
export class ManageTriggerViewObject {
|
||||
|
||||
public sections: {[name: string]: ElementFinder} = {
|
||||
namespace: $('linear-workflow-section[section-id=namespace]'),
|
||||
githostrepo: $('linear-workflow-section[section-id=repo][section-title="Select Repository"]'),
|
||||
customrepo: $('linear-workflow-section[section-id=repo][section-title="Git Repository"]'),
|
||||
triggeroptions: $('linear-workflow-section[section-id=triggeroptions]'),
|
||||
dockerfilelocation: $('linear-workflow-section[section-id=dockerfilelocation]'),
|
||||
contextlocation: $('linear-workflow-section[section-id=contextlocation]'),
|
||||
robot: $('linear-workflow-section[section-id=robot]'),
|
||||
verification: $('linear-workflow-section[section-id=verification]'),
|
||||
};
|
||||
|
||||
private customGitRepoInput: ElementFinder = element(by.model('$ctrl.buildSource'));
|
||||
private dockerfileLocationInput: ElementFinder = this.sections['dockerfilelocation'].$('input');
|
||||
private dockerfileLocationDropdownButton: ElementFinder = this.sections['dockerfilelocation'].$('button[data-toggle=dropdown');
|
||||
private dockerContextInput: ElementFinder = this.sections['contextlocation'].$('input');
|
||||
private dockerContextDropdownButton: ElementFinder = this.sections['contextlocation'].$('button[data-toggle=dropdown');
|
||||
private robotAccountOptions: ElementFinder = this.sections['robot'].element(by.repeater('$ctrl.orderedData.visibleEntries'));
|
||||
|
||||
public continue(): Promise<void> {
|
||||
return Promise.resolve(element(by.buttonText('Continue')).click());
|
||||
}
|
||||
|
||||
public enterRepositoryURL(url: string): Promise<void> {
|
||||
browser.wait(until.presenceOf(this.customGitRepoInput));
|
||||
this.customGitRepoInput.clear();
|
||||
|
||||
return Promise.resolve(this.customGitRepoInput.sendKeys(url));
|
||||
}
|
||||
|
||||
public enterDockerfileLocation(path: string): Promise<void> {
|
||||
browser.wait(until.presenceOf(this.dockerfileLocationInput));
|
||||
this.dockerfileLocationInput.clear();
|
||||
|
||||
return Promise.resolve(this.dockerfileLocationInput.sendKeys(path));
|
||||
}
|
||||
|
||||
public getDockerfileSuggestions(): Promise<string[]> {
|
||||
return Promise.resolve(this.dockerfileLocationDropdownButton.click())
|
||||
.then(() => element.all(by.repeater('$ctrl.paths')).map(result => result.getText()));
|
||||
}
|
||||
|
||||
public enterDockerContext(path: string): Promise<void> {
|
||||
browser.wait(until.presenceOf(this.dockerContextInput));
|
||||
this.dockerContextInput.clear();
|
||||
|
||||
return Promise.resolve(this.dockerContextInput.sendKeys(path));
|
||||
}
|
||||
|
||||
public getDockerContextSuggestions(): Promise<string[]> {
|
||||
return Promise.resolve(this.dockerContextDropdownButton.click())
|
||||
.then(() => element.all(by.repeater('$ctrl.contexts')).map(result => result.getText()));
|
||||
}
|
||||
|
||||
public selectRobotAccount(index: number): Promise<void> {
|
||||
return Promise.resolve(element.all(by.css('input[type=radio]')).get(index).click());
|
||||
}
|
||||
}
|
Reference in a new issue