diff --git a/lib/testing/src/lib/core/pages/data-table/column.ts b/lib/testing/src/lib/core/pages/data-table/column.ts index 127d08113e..120af86e46 100644 --- a/lib/testing/src/lib/core/pages/data-table/column.ts +++ b/lib/testing/src/lib/core/pages/data-table/column.ts @@ -18,10 +18,10 @@ export abstract class Column { columnName: string; columnType: string; - locator: string; - constructor(columnName: string) { + constructor(columnName: string, columnType: string ) { this.columnName = columnName; + this.columnType = columnType; } createLocator(columnValue: string): string { diff --git a/lib/testing/src/lib/core/pages/data-table/data-table-builder.ts b/lib/testing/src/lib/core/pages/data-table/data-table-builder.ts index cafee2ca2d..8885766e10 100644 --- a/lib/testing/src/lib/core/pages/data-table/data-table-builder.ts +++ b/lib/testing/src/lib/core/pages/data-table/data-table-builder.ts @@ -23,7 +23,7 @@ import { ElementFinder } from 'protractor'; export class DataTableBuilder { - createDataTable(columns: Array, rootElement?: ElementFinder): DataTableItem { + createDataTable(columns: Column[], rootElement?: ElementFinder): DataTableItem { const datatable: DataTableItem = new DataTableItem(rootElement); for (const column of columns) { switch (column.columnType) { diff --git a/lib/testing/src/lib/core/pages/data-table/data-table-item.ts b/lib/testing/src/lib/core/pages/data-table/data-table-item.ts index 9d9da3253c..23e55297ad 100644 --- a/lib/testing/src/lib/core/pages/data-table/data-table-item.ts +++ b/lib/testing/src/lib/core/pages/data-table/data-table-item.ts @@ -16,7 +16,7 @@ */ import { Column } from './column'; -import { by, element, ElementFinder, Locator } from 'protractor'; +import { by, element, ElementFinder, Locator, protractor, browser } from 'protractor'; import { BrowserActions } from '../../utils/browser-actions'; import { BrowserVisibility } from '../../utils/browser-visibility'; @@ -59,4 +59,10 @@ export class DataTableItem { async waitForFirstRow(): Promise { await BrowserVisibility.waitUntilElementIsVisible(this.rootElement.all(this.rows).first()); } + + async clickAndEnterOnRow(columnName: string, columnValue: string): Promise { + const row = this.getRow(columnName, columnValue); + await BrowserActions.click(row); + await browser.actions().sendKeys(protractor.Key.ENTER).perform(); + } } diff --git a/lib/testing/src/lib/core/pages/data-table/date-column.ts b/lib/testing/src/lib/core/pages/data-table/date-column.ts index 94754b58e0..58a4234633 100644 --- a/lib/testing/src/lib/core/pages/data-table/date-column.ts +++ b/lib/testing/src/lib/core/pages/data-table/date-column.ts @@ -18,10 +18,10 @@ import { Column } from './column'; export class DateColumn extends Column { - columnType: string = 'date'; + columnType: string; columnName: string; constructor(columnName: string) { - super(columnName); + super(columnName, 'date'); } } diff --git a/lib/testing/src/lib/core/pages/data-table/text-column.ts b/lib/testing/src/lib/core/pages/data-table/text-column.ts index 1df29234c2..38c987f131 100644 --- a/lib/testing/src/lib/core/pages/data-table/text-column.ts +++ b/lib/testing/src/lib/core/pages/data-table/text-column.ts @@ -18,10 +18,10 @@ import { Column } from './column'; export class TextColumn extends Column { - columnType: string = 'text'; + columnType: string; columnName: string; constructor(columnName: string) { - super(columnName); + super(columnName, 'text'); } } diff --git a/lib/testing/src/lib/core/pages/snackbar.page.ts b/lib/testing/src/lib/core/pages/snackbar.page.ts index f4afa65125..3c6ef3cda5 100644 --- a/lib/testing/src/lib/core/pages/snackbar.page.ts +++ b/lib/testing/src/lib/core/pages/snackbar.page.ts @@ -17,10 +17,12 @@ import { element, by, ElementFinder } from 'protractor'; import { BrowserVisibility } from '../utils/browser-visibility'; +import { BrowserActions } from '../utils/browser-actions'; export class SnackbarPage { notificationSnackBar: ElementFinder = element.all(by.css('simple-snack-bar span')).first(); + snackBarAction: ElementFinder = element(by.css('simple-snack-bar button span')); snackBarContainerCss = by.css('.mat-snack-bar-container'); async waitForSnackBarToAppear() { @@ -38,6 +40,16 @@ export class SnackbarPage { return this.notificationSnackBar.getText(); } + async getSnackBarActionMessage(): Promise { + await this.waitForSnackBarToAppear(); + return this.snackBarAction.getText(); + } + + async clickSnackBarAction(): Promise { + await this.waitForSnackBarToAppear(); + await BrowserActions.click(this.snackBarAction); + } + async isNotificationSnackBarDisplayed(): Promise { try { await BrowserVisibility.waitUntilElementIsVisible(this.notificationSnackBar, 2000);