[ADF-3329] datatable component e2e (#3589)

* datatable component e2e
minor fix tslint

* fix review
This commit is contained in:
Eugenio Romano 2018-07-12 23:25:27 +01:00 committed by Eugenio Romano
parent f2103b43f2
commit 2f7e0e6cb6
10 changed files with 107 additions and 78 deletions

View File

@ -1,5 +1,5 @@
<mat-form-field> <mat-form-field>
<input matInput placeholder="Name filter" [(ngModel)]="data.filterValue"> <input id="adf-datatable-filter-input" matInput placeholder="Name filter" [(ngModel)]="data.filterValue">
</mat-form-field> </mat-form-field>
<adf-datatable <adf-datatable

View File

@ -21,7 +21,6 @@ import ProcessFiltersPage = require('./pages/adf/process_services/processFilters
import FileModel = require('./models/ACS/fileModel'); import FileModel = require('./models/ACS/fileModel');
import { AttachmentListPage } from './pages/adf/process_services/attachmentListPage'; import { AttachmentListPage } from './pages/adf/process_services/attachmentListPage';
import TestConfig = require('./test.config'); import TestConfig = require('./test.config');
import resources = require('./util/resources'); import resources = require('./util/resources');

View File

@ -15,11 +15,11 @@
* limitations under the License. * limitations under the License.
*/ */
import LoginPage = require('./pages/adf/loginPage'); import LoginPage = require('../pages/adf/loginPage');
import DataTablePage = require('./pages/adf/dataTablePage'); import DataTablePage = require('../pages/adf/dataTablePage');
import TestConfig = require('./test.config'); import TestConfig = require('../test.config');
import AcsUserModel = require('./models/ACS/acsUserModel'); import AcsUserModel = require('../models/ACS/acsUserModel');
import AlfrescoApi = require('alfresco-js-api-node'); import AlfrescoApi = require('alfresco-js-api-node');
describe('Datatable component - selection', () => { describe('Datatable component - selection', () => {
@ -45,15 +45,15 @@ describe('Datatable component - selection', () => {
done(); done();
}); });
it('1. Data Table Selection Modes', () => { it('[C213258] Should be possible change the selection modes when change the selectionMode property', () => {
dataTablePage.selectRow('2'); dataTablePage.selectRow('2');
dataTablePage.checkRowIsSelected('2'); dataTablePage.checkRowIsSelected('2');
dataTablePage.getNumberOfSelectedRows().then(function (result) { dataTablePage.getNumberOfSelectedRows().then((result) => {
expect(result).toEqual(1); expect(result).toEqual(1);
}); });
dataTablePage.selectRow('3'); dataTablePage.selectRow('3');
dataTablePage.checkRowIsSelected('3'); dataTablePage.checkRowIsSelected('3');
dataTablePage.getNumberOfSelectedRows().then(function (result) { dataTablePage.getNumberOfSelectedRows().then((result) => {
expect(result).toEqual(1); expect(result).toEqual(1);
}); });
dataTablePage.selectSelectionMode('Multiple'); dataTablePage.selectSelectionMode('Multiple');
@ -69,7 +69,7 @@ describe('Datatable component - selection', () => {
dataTablePage.checkNoRowIsSelected(); dataTablePage.checkNoRowIsSelected();
}); });
it('2. Data Table allows the multiselection of rows', () => { it('[C260059] Should be possible select multiple row when multiselect is true', () => {
dataTablePage.clickMultiSelect(); dataTablePage.clickMultiSelect();
dataTablePage.clickCheckbox('1'); dataTablePage.clickCheckbox('1');
dataTablePage.checkRowIsChecked('1'); dataTablePage.checkRowIsChecked('1');
@ -82,11 +82,20 @@ describe('Datatable component - selection', () => {
dataTablePage.checkRowIsChecked('1'); dataTablePage.checkRowIsChecked('1');
}); });
it('3. Can select all in data table', () => { it('[C260058] Should be possible select all the rows when multiselect is true', () => {
dataTablePage.checkAllRows(); dataTablePage.checkAllRows();
dataTablePage.checkRowIsChecked('1'); dataTablePage.checkRowIsChecked('1');
dataTablePage.checkRowIsChecked('2'); dataTablePage.checkRowIsChecked('2');
dataTablePage.checkRowIsChecked('3'); dataTablePage.checkRowIsChecked('3');
dataTablePage.checkRowIsChecked('4'); dataTablePage.checkRowIsChecked('4');
}); });
it('[C277262] Should be possible reset the selected row when click on the reset button', () => {
dataTablePage.checkRowIsChecked('1');
dataTablePage.checkRowIsChecked('2');
dataTablePage.checkRowIsChecked('3');
dataTablePage.checkRowIsChecked('4');
dataTablePage.clickReset();
dataTablePage.checkNoRowIsSelected();
});
}); });

View File

@ -15,10 +15,10 @@
* limitations under the License. * limitations under the License.
*/ */
import LoginPage = require('./pages/adf/loginPage.js'); import LoginPage = require('../pages/adf/loginPage.js');
import DataTablePage = require('./pages/adf/dataTablePage.js'); import DataTablePage = require('../pages/adf/dataTablePage.js');
import AcsUserModel = require('./models/ACS/acsUserModel.js'); import AcsUserModel = require('../models/ACS/acsUserModel.js');
import TestConfig = require('./test.config.js'); import TestConfig = require('../test.config.js');
import AlfrescoApi = require('alfresco-js-api-node'); import AlfrescoApi = require('alfresco-js-api-node');
@ -45,8 +45,8 @@ describe('Datatable component', () => {
done(); done();
}); });
it('1. DataTable allows extra rows to be added', () => { it('[C91314] Should be possible add new row to the table', () => {
dataTablePage.getNumberOfRows().then(function (result) { dataTablePage.getNumberOfRows().then((result) => {
dataTablePage.addRow(); dataTablePage.addRow();
expect(dataTablePage.getNumberOfRows()).toEqual(result + 1); expect(dataTablePage.getNumberOfRows()).toEqual(result + 1);
dataTablePage.addRow(); dataTablePage.addRow();
@ -54,12 +54,20 @@ describe('Datatable component', () => {
}); });
}); });
it('2. Data Table can replace rows', () => { it('[C260039] Should be possible replace rows', () => {
dataTablePage.replaceRows(1); dataTablePage.replaceRows(1);
}); });
it('3. Data Table can replace columns', () => { it('[C260041] Should be possible replace columns', () => {
dataTablePage.replaceColumns(); dataTablePage.replaceColumns();
}); });
it('[C277314] Should filter the table rows when the input filter is passed', () => {
expect(dataTablePage.getNumberOfRows()).toEqual(5);
dataTablePage.insertFilter('Name');
expect(dataTablePage.getNumberOfRows()).toEqual(4);
dataTablePage.insertFilter('I');
expect(dataTablePage.getNumberOfRows()).toEqual(2);
});
}); });

View File

@ -30,6 +30,7 @@ var DataTablePage = function () {
var list = element.all(by.css("div[class*=adf-datatable-row]")); var list = element.all(by.css("div[class*=adf-datatable-row]"));
var addRow = element(by.xpath("//span[contains(text(),'Add row')]/..")); var addRow = element(by.xpath("//span[contains(text(),'Add row')]/.."));
var replaceRows = element(by.xpath("//span[contains(text(),'Replace rows')]/..")); var replaceRows = element(by.xpath("//span[contains(text(),'Replace rows')]/.."));
var reset = element(by.xpath("//span[contains(text(),'Reset to default')]/.."));
var replaceColumns = element(by.xpath("//span[contains(text(),'Replace columns')]/..")); var replaceColumns = element(by.xpath("//span[contains(text(),'Replace columns')]/.."));
var loadNode = element(by.xpath("//span[contains(text(),'Load Node')]/..")); var loadNode = element(by.xpath("//span[contains(text(),'Load Node')]/.."));
var createdOnColumn = element(by.css("div[data-automation-id='auto_id_createdOn']")); var createdOnColumn = element(by.css("div[data-automation-id='auto_id_createdOn']"));
@ -62,13 +63,20 @@ var DataTablePage = function () {
/** /**
* Click multiselect option * Click multiselect option
* @property clickMultiSelect
* */ * */
this.clickMultiSelect = function () { this.clickMultiSelect = function () {
Util.waitUntilElementIsVisible(multiSelect); Util.waitUntilElementIsVisible(multiSelect);
multiSelect.click(); multiSelect.click();
}; };
/**
* Click reset option
* */
this.clickReset = function () {
Util.waitUntilElementIsVisible(reset);
reset.click();
};
/** /**
* Click specific checkbox in row * Click specific checkbox in row
* @method clickCheckbox * @method clickCheckbox
@ -246,5 +254,11 @@ var DataTablePage = function () {
Util.waitUntilElementIsVisible(tableBody); Util.waitUntilElementIsVisible(tableBody);
}; };
this.insertFilter = function (filterText) {
var inputFilter = element(by.xpath("//*[@id=\"adf-datatable-filter-input\"]"));
inputFilter.clear();
return inputFilter.sendKeys(filterText);
};
}; };
module.exports = DataTablePage; module.exports = DataTablePage;

View File

@ -124,14 +124,13 @@ describe('Tag component', () => {
tagPage.checkTagIsDisplayedInTagList(digitsTag); tagPage.checkTagIsDisplayedInTagList(digitsTag);
tagPage.checkTagIsDisplayedInTagListByNodeId(digitsTag); tagPage.checkTagIsDisplayedInTagListByNodeId(digitsTag);
tagPage.insertNodeId(pdfFileModel.id) tagPage.insertNodeId(pdfFileModel.id);
tagPage.addTag(nonLatinTag); tagPage.addTag(nonLatinTag);
tagPage.checkTagIsDisplayedInTagList(nonLatinTag); tagPage.checkTagIsDisplayedInTagList(nonLatinTag);
tagPage.checkTagIsDisplayedInTagListByNodeId(nonLatinTag); tagPage.checkTagIsDisplayedInTagListByNodeId(nonLatinTag);
}); });
it('[C260375] Delete tag', () => { it('[C260375] Delete tag', () => {
let deleteTag = Util.generateRandomStringToUpperCase(); let deleteTag = Util.generateRandomStringToUpperCase();