[ADF-3544] Automated test for Dynamic DataTable (#3811)

* [ADF-3544] Automated test for Dynamic DataTable

* Adding a new line

* Adding a line at the end of the file
This commit is contained in:
jdosti
2018-09-21 11:43:29 +01:00
committed by Eugenio Romano
parent 897a557afa
commit a57c41f528
3 changed files with 198 additions and 0 deletions

View File

@@ -16,6 +16,8 @@
*/
var FormFields = require('../formFields');
var Util = require('../../../../util/util');
var DynamicTable = function () {
@@ -23,6 +25,16 @@ var DynamicTable = function () {
var labelLocator = by.css("dynamic-table-widget div div");
var columnNameLocator = by.css("table[id*='dynamic-table'] th");
var addButton = element(by.id("label-add-row"));
var columnDateTime = element(by.id("columnDateTime"));
var columnDate = element(by.id("columnDate"));
var calendarHeader = element(by.css("div[class='mat-datetimepicker-calendar-header-date-time']"));
var calendarContent = element(by.css("div[class='mat-datetimepicker-calendar-content']"));
var saveButton = element(by.cssContainingText('button span', 'Save'));
var errorMessage = element(by.css('div[class="adf-error-text"]'));
var dateWidget = element(by.css('button[aria-label="Open calendar"]'));
var calendarNumber = element.all(by.css('td div'));
var tableRow = element.all(by.css('tbody tr'));
this.getFieldLabel = function (fieldId) {
return formFields.getFieldLabel(fieldId, labelLocator);
@@ -32,6 +44,60 @@ var DynamicTable = function () {
return formFields.getFieldText(fieldId, columnNameLocator);
};
this.clickAddButton = function () {
Util.waitUntilElementIsVisible(addButton);
return addButton.click();
};
this.clickColumnDateTime = function () {
Util.waitUntilElementIsVisible(columnDateTime);
columnDateTime.click();
Util.waitUntilElementIsVisible(calendarHeader);
Util.waitUntilElementIsVisible(calendarContent);
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
};
this.addRandomStringOnDateTime = function (randomText) {
Util.waitUntilElementIsVisible(columnDateTime);
columnDateTime.click();
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
columnDateTime.sendKeys(randomText);
columnDateTime.sendKeys(protractor.Key.ENTER);
return columnDateTime.getAttribute('value');
};
this.addRandomStringOnDate = function(randomText) {
Util.waitUntilElementIsVisible(columnDate);
columnDate.click();
return columnDate.sendKeys(randomText);
};
this.clickSaveButton = function () {
Util.waitUntilElementIsVisible(saveButton);
return saveButton.click();
};
this.checkErrorMessage = function () {
Util.waitUntilElementIsVisible(errorMessage);
return errorMessage.getText();
};
this.clickDateWidget = function () {
Util.waitUntilElementIsVisible(dateWidget);
return dateWidget.click();
};
this.getDateCalendarNumber = function (date) {
return calendarNumber.get(date).click();
};
this.getTableRow = function (rowNumber) {
return Util.waitUntilElementIsVisible(tableRow.get(rowNumber));
};
this.waitForCalendarToDisappear = function () {
Util.waitUntilElementIsNotVisible(calendarNumber);
};
};
module.exports = DynamicTable;