UNPKG

@angular/material

Version:
47 lines (44 loc) 1.98 kB
import { ContentContainerComponentHarness, HarnessPredicate } from '@angular/cdk/testing'; /** Harness for interacting with a `mat-option` in tests. */ class MatOptionHarness extends ContentContainerComponentHarness { /** Selector used to locate option instances. */ static hostSelector = '.mat-mdc-option'; /** Element containing the option's text. */ _text = this.locatorFor('.mdc-list-item__primary-text'); /** * Gets a `HarnessPredicate` that can be used to search for an option with specific attributes. * @param options Options for filtering which option instances are considered a match. * @return a `HarnessPredicate` configured with the given options. */ static with(options = {}) { return new HarnessPredicate(this, options) .addOption('text', options.text, async (harness, title) => HarnessPredicate.stringMatches(await harness.getText(), title)) .addOption('isSelected', options.isSelected, async (harness, isSelected) => (await harness.isSelected()) === isSelected); } /** Clicks the option. */ async click() { return (await this.host()).click(); } /** Gets the option's label text. */ async getText() { return (await this._text()).text(); } /** Gets whether the option is disabled. */ async isDisabled() { return (await this.host()).hasClass('mdc-list-item--disabled'); } /** Gets whether the option is selected. */ async isSelected() { return (await this.host()).hasClass('mdc-list-item--selected'); } /** Gets whether the option is active. */ async isActive() { return (await this.host()).hasClass('mat-mdc-option-active'); } /** Gets whether the option is in multiple selection mode. */ async isMultiple() { return (await this.host()).hasClass('mat-mdc-option-multiple'); } } export { MatOptionHarness as M }; //# sourceMappingURL=option-harness-5590f8f2.mjs.map