diff --git a/lib/testing/src/lib/core/pages/form/widgets/checkboxWidget.ts b/lib/testing/src/lib/core/pages/form/widgets/checkboxWidget.ts index edefbecebe..a3901ff601 100644 --- a/lib/testing/src/lib/core/pages/form/widgets/checkboxWidget.ts +++ b/lib/testing/src/lib/core/pages/form/widgets/checkboxWidget.ts @@ -16,14 +16,15 @@ */ import { FormFields } from '../formFields'; -import { BrowserActions } from '../../../utils/public-api'; -import { by, element } from 'protractor'; +import { BrowserActions, BrowserVisibility } from '../../../utils/public-api'; +import { by, element, Locator } from 'protractor'; import { ElementFinder } from 'protractor'; export class CheckboxWidget { formFields: FormFields = new FormFields(); checkboxLabel: ElementFinder = element(by.css('span[class*="mat-checkbox-label"]')); + checkboxLocator: Locator = by.css('mat-checkbox'); getCheckboxLabel(): Promise { return BrowserActions.getText(this.checkboxLabel); @@ -41,4 +42,14 @@ export class CheckboxWidget { async isCheckboxHidden(fieldId): Promise { await this.formFields.checkWidgetIsHidden(fieldId); } + + async isCheckboxChecked(fieldId): Promise { + let isChecked: boolean = false; + const checkboxWidget: ElementFinder = await (await this.formFields.getWidget(fieldId)).element(this.checkboxLocator); + await BrowserVisibility.waitUntilElementIsVisible(checkboxWidget); + await checkboxWidget.getAttribute('class').then((attributeValue) => { + isChecked = attributeValue.includes('mat-checkbox-checked'); + }); + return isChecked; + } }