Skip to content

Commit 5846195

Browse files
feat(material/slide-toggle): Add disabled predicate to MatSlideToggleHarness (#24761)
- Add `disabled` predicate to MatMdcSlideToggleHarness - Update tests for new `disabled` predicate - Update golden
1 parent 9a6f72d commit 5846195

File tree

5 files changed

+25
-0
lines changed

5 files changed

+25
-0
lines changed

src/material-experimental/mdc-slide-toggle/testing/slide-toggle-harness.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ export class MatSlideToggleHarness extends _MatSlideToggleHarnessBase {
4444
options.checked,
4545
async (harness, checked) => (await harness.isChecked()) == checked,
4646
)
47+
.addOption(
48+
'disabled',
49+
options.disabled,
50+
async (harness, disabled) => (await harness.isDisabled()) == disabled,
51+
)
4752
);
4853
}
4954

src/material/slide-toggle/testing/shared.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,18 @@ export function runHarnessTests(
3636
expect(await slideToggles[0].getLabelText()).toBe('First');
3737
});
3838

39+
it('should load slide-toggle with disabled=true predicate', async () => {
40+
const slideToggles = await loader.getAllHarnesses(slideToggleHarness.with({disabled: true}));
41+
expect(slideToggles.length).toBe(1);
42+
expect(await slideToggles[0].isDisabled()).toBe(true);
43+
});
44+
45+
it('should load slide-toggle with disabled=false predicate', async () => {
46+
const slideToggles = await loader.getAllHarnesses(slideToggleHarness.with({disabled: false}));
47+
expect(slideToggles.length).toBe(1);
48+
expect(await slideToggles[0].isDisabled()).toBe(false);
49+
});
50+
3951
it('should load slide-toggle with regex label match', async () => {
4052
const slideToggles = await loader.getAllHarnesses(slideToggleHarness.with({label: /^s/i}));
4153
expect(slideToggles.length).toBe(1);

src/material/slide-toggle/testing/slide-toggle-harness-filters.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,6 @@ export interface SlideToggleHarnessFilters extends BaseHarnessFilters {
1616
name?: string;
1717
/** Only find instances with the given checked value. */
1818
checked?: boolean;
19+
/** Only find instances where the disabled state matches the given value. */
20+
disabled?: boolean;
1921
}

src/material/slide-toggle/testing/slide-toggle-harness.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,11 @@ export class MatSlideToggleHarness extends _MatSlideToggleHarnessBase {
132132
options.checked,
133133
async (harness, checked) => (await harness.isChecked()) == checked,
134134
)
135+
.addOption(
136+
'disabled',
137+
options.disabled,
138+
async (harness, disabled) => (await harness.isDisabled()) == disabled,
139+
)
135140
);
136141
}
137142

tools/public_api_guard/material/slide-toggle-testing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export abstract class _MatSlideToggleHarnessBase extends ComponentHarness {
4343
// @public
4444
export interface SlideToggleHarnessFilters extends BaseHarnessFilters {
4545
checked?: boolean;
46+
disabled?: boolean;
4647
label?: string | RegExp;
4748
name?: string;
4849
}

0 commit comments

Comments
 (0)