From 3f0b534c89ee5b4278b6fd673e2313638c98bf92 Mon Sep 17 00:00:00 2001 From: Richie Foreman Date: Mon, 11 Apr 2022 17:14:35 -0400 Subject: [PATCH] feat(material/slide-toggle): Add `disabled` predicate to MatSlideToggleHarness - Add `disabled` predicate to MatMdcSlideToggleHarness - Update tests for new `disabled` predicate - Update golden --- .../mdc-slide-toggle/testing/slide-toggle-harness.ts | 5 +++++ src/material/slide-toggle/testing/shared.spec.ts | 12 ++++++++++++ .../testing/slide-toggle-harness-filters.ts | 2 ++ .../slide-toggle/testing/slide-toggle-harness.ts | 5 +++++ .../material/slide-toggle-testing.md | 1 + 5 files changed, 25 insertions(+) diff --git a/src/material-experimental/mdc-slide-toggle/testing/slide-toggle-harness.ts b/src/material-experimental/mdc-slide-toggle/testing/slide-toggle-harness.ts index 932216e3d488..8ba3a2a4b17e 100644 --- a/src/material-experimental/mdc-slide-toggle/testing/slide-toggle-harness.ts +++ b/src/material-experimental/mdc-slide-toggle/testing/slide-toggle-harness.ts @@ -44,6 +44,11 @@ export class MatSlideToggleHarness extends _MatSlideToggleHarnessBase { options.checked, async (harness, checked) => (await harness.isChecked()) == checked, ) + .addOption( + 'disabled', + options.disabled, + async (harness, disabled) => (await harness.isDisabled()) == disabled, + ) ); } diff --git a/src/material/slide-toggle/testing/shared.spec.ts b/src/material/slide-toggle/testing/shared.spec.ts index 36e78ac51830..31df36124f9e 100644 --- a/src/material/slide-toggle/testing/shared.spec.ts +++ b/src/material/slide-toggle/testing/shared.spec.ts @@ -36,6 +36,18 @@ export function runHarnessTests( expect(await slideToggles[0].getLabelText()).toBe('First'); }); + it('should load slide-toggle with disabled=true predicate', async () => { + const slideToggles = await loader.getAllHarnesses(slideToggleHarness.with({disabled: true})); + expect(slideToggles.length).toBe(1); + expect(await slideToggles[0].isDisabled()).toBe(true); + }); + + it('should load slide-toggle with disabled=false predicate', async () => { + const slideToggles = await loader.getAllHarnesses(slideToggleHarness.with({disabled: false})); + expect(slideToggles.length).toBe(1); + expect(await slideToggles[0].isDisabled()).toBe(false); + }); + it('should load slide-toggle with regex label match', async () => { const slideToggles = await loader.getAllHarnesses(slideToggleHarness.with({label: /^s/i})); expect(slideToggles.length).toBe(1); diff --git a/src/material/slide-toggle/testing/slide-toggle-harness-filters.ts b/src/material/slide-toggle/testing/slide-toggle-harness-filters.ts index 8ae1309c5d54..2dd2eda7066c 100644 --- a/src/material/slide-toggle/testing/slide-toggle-harness-filters.ts +++ b/src/material/slide-toggle/testing/slide-toggle-harness-filters.ts @@ -16,4 +16,6 @@ export interface SlideToggleHarnessFilters extends BaseHarnessFilters { name?: string; /** Only find instances with the given checked value. */ checked?: boolean; + /** Only find instances that are disabled */ + disabled?: boolean; } diff --git a/src/material/slide-toggle/testing/slide-toggle-harness.ts b/src/material/slide-toggle/testing/slide-toggle-harness.ts index 1de728569a22..23044d7a4349 100644 --- a/src/material/slide-toggle/testing/slide-toggle-harness.ts +++ b/src/material/slide-toggle/testing/slide-toggle-harness.ts @@ -132,6 +132,11 @@ export class MatSlideToggleHarness extends _MatSlideToggleHarnessBase { options.checked, async (harness, checked) => (await harness.isChecked()) == checked, ) + .addOption( + 'disabled', + options.disabled, + async (harness, disabled) => (await harness.isDisabled()) == disabled, + ) ); } diff --git a/tools/public_api_guard/material/slide-toggle-testing.md b/tools/public_api_guard/material/slide-toggle-testing.md index c42db2eb0784..ad73a433f47a 100644 --- a/tools/public_api_guard/material/slide-toggle-testing.md +++ b/tools/public_api_guard/material/slide-toggle-testing.md @@ -43,6 +43,7 @@ export abstract class _MatSlideToggleHarnessBase extends ComponentHarness { // @public export interface SlideToggleHarnessFilters extends BaseHarnessFilters { checked?: boolean; + disabled?: boolean; label?: string | RegExp; name?: string; }