UNPKG

@angular/material

Version:
1 lines 9.16 kB
{"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/slide-toggle/testing/slide-toggle-harness.ts","../../../../../../../src/material/slide-toggle/testing/public-api.ts","../../../../../../../src/material/slide-toggle/testing/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n AsyncFactoryFn,\n ComponentHarness,\n HarnessPredicate,\n TestElement,\n} from '@angular/cdk/testing';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {SlideToggleHarnessFilters} from './slide-toggle-harness-filters';\n\nexport abstract class _MatSlideToggleHarnessBase extends ComponentHarness {\n private _label = this.locatorFor('label');\n protected abstract _nativeElement: AsyncFactoryFn<TestElement>;\n\n /** Toggle the checked state of the slide-toggle. */\n abstract toggle(): Promise<void>;\n\n /** Whether the slide-toggle is checked. */\n abstract isChecked(): Promise<boolean>;\n\n /** Whether the slide-toggle is disabled. */\n async isDisabled(): Promise<boolean> {\n const disabled = (await this._nativeElement()).getAttribute('disabled');\n return coerceBooleanProperty(await disabled);\n }\n\n /** Whether the slide-toggle is required. */\n async isRequired(): Promise<boolean> {\n const required = (await this._nativeElement()).getAttribute('required');\n return coerceBooleanProperty(await required);\n }\n\n /** Whether the slide-toggle is valid. */\n async isValid(): Promise<boolean> {\n const invalid = (await this.host()).hasClass('ng-invalid');\n return !(await invalid);\n }\n\n /** Gets the slide-toggle's name. */\n async getName(): Promise<string | null> {\n return (await this._nativeElement()).getAttribute('name');\n }\n\n /** Gets the slide-toggle's aria-label. */\n async getAriaLabel(): Promise<string | null> {\n return (await this._nativeElement()).getAttribute('aria-label');\n }\n\n /** Gets the slide-toggle's aria-labelledby. */\n async getAriaLabelledby(): Promise<string | null> {\n return (await this._nativeElement()).getAttribute('aria-labelledby');\n }\n\n /** Gets the slide-toggle's label text. */\n async getLabelText(): Promise<string> {\n return (await this._label()).text();\n }\n\n /** Focuses the slide-toggle. */\n async focus(): Promise<void> {\n return (await this._nativeElement()).focus();\n }\n\n /** Blurs the slide-toggle. */\n async blur(): Promise<void> {\n return (await this._nativeElement()).blur();\n }\n\n /** Whether the slide-toggle is focused. */\n async isFocused(): Promise<boolean> {\n return (await this._nativeElement()).isFocused();\n }\n\n /**\n * Puts the slide-toggle in a checked state by toggling it if it is currently unchecked, or doing\n * nothing if it is already checked.\n */\n async check(): Promise<void> {\n if (!(await this.isChecked())) {\n await this.toggle();\n }\n }\n\n /**\n * Puts the slide-toggle in an unchecked state by toggling it if it is currently checked, or doing\n * nothing if it is already unchecked.\n */\n async uncheck(): Promise<void> {\n if (await this.isChecked()) {\n await this.toggle();\n }\n }\n}\n\n/** Harness for interacting with a standard mat-slide-toggle in tests. */\nexport class MatSlideToggleHarness extends _MatSlideToggleHarnessBase {\n private _inputContainer = this.locatorFor('.mat-slide-toggle-bar');\n protected _nativeElement = this.locatorFor('input');\n\n /** The selector for the host element of a `MatSlideToggle` instance. */\n static hostSelector = '.mat-slide-toggle';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatSlideToggleHarness` that meets\n * certain criteria.\n * @param options Options for filtering which slide toggle instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: SlideToggleHarnessFilters = {}): HarnessPredicate<MatSlideToggleHarness> {\n return (\n new HarnessPredicate(MatSlideToggleHarness, options)\n .addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabelText(), label),\n )\n // We want to provide a filter option for \"name\" because the name of the slide-toggle is\n // only set on the underlying input. This means that it's not possible for developers\n // to retrieve the harness of a specific checkbox with name through a CSS selector.\n .addOption(\n 'name',\n options.name,\n async (harness, name) => (await harness.getName()) === name,\n )\n .addOption(\n 'checked',\n options.checked,\n async (harness, checked) => (await harness.isChecked()) == checked,\n )\n .addOption(\n 'disabled',\n options.disabled,\n async (harness, disabled) => (await harness.isDisabled()) == disabled,\n )\n );\n }\n\n /** Toggle the checked state of the slide-toggle. */\n async toggle(): Promise<void> {\n return (await this._inputContainer()).click();\n }\n\n /** Whether the slide-toggle is checked. */\n async isChecked(): Promise<boolean> {\n const checked = (await this._nativeElement()).getProperty<boolean>('checked');\n return coerceBooleanProperty(await checked);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './slide-toggle-harness';\nexport * from './slide-toggle-harness-filters';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}