Skip to content

Commit 962c9a3

Browse files
authored
test(material/checkbox): add disabled harness filter (#26155)
* test(material/checkbox): add disabled harness filter * test(material/legacy-checkbox): add disabled harness filter
1 parent c3d1eac commit 962c9a3

File tree

5 files changed

+22
-0
lines changed

5 files changed

+22
-0
lines changed

src/material/checkbox/testing/checkbox-harness-filters.ts

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

src/material/checkbox/testing/checkbox-harness.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,9 @@ export class MatCheckboxHarness extends _MatCheckboxHarnessBase {
162162
options.checked,
163163
async (harness, checked) => (await harness.isChecked()) == checked,
164164
)
165+
.addOption('disabled', options.disabled, async (harness, disabled) => {
166+
return (await harness.isDisabled()) === disabled;
167+
})
165168
);
166169
}
167170

src/material/checkbox/testing/shared.spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,19 @@ export function runHarnessTests(
5151
expect(await checkboxes[0].getLabelText()).toBe('Second');
5252
});
5353

54+
it('should load checkbox with disabled state', async () => {
55+
let enabledCheckboxes = await loader.getAllHarnesses(checkboxHarness.with({disabled: false}));
56+
let disabledCheckboxes = await loader.getAllHarnesses(checkboxHarness.with({disabled: true}));
57+
expect(enabledCheckboxes.length).toBe(1);
58+
expect(disabledCheckboxes.length).toBe(1);
59+
60+
fixture.componentInstance.disabled = false;
61+
enabledCheckboxes = await loader.getAllHarnesses(checkboxHarness.with({disabled: false}));
62+
disabledCheckboxes = await loader.getAllHarnesses(checkboxHarness.with({disabled: true}));
63+
expect(enabledCheckboxes.length).toBe(2);
64+
expect(disabledCheckboxes.length).toBe(0);
65+
});
66+
5467
it('should get checked state', async () => {
5568
const [checkedCheckbox, uncheckedCheckbox] = await loader.getAllHarnesses(checkboxHarness);
5669
expect(await checkedCheckbox.isChecked()).toBe(true);

src/material/legacy-checkbox/testing/checkbox-harness.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ export class MatLegacyCheckboxHarness extends _MatCheckboxHarnessBase {
4343
options.checked,
4444
async (harness, checked) => (await harness.isChecked()) == checked,
4545
)
46+
.addOption('disabled', options.disabled, async (harness, disabled) => {
47+
return (await harness.isDisabled()) === disabled;
48+
})
4649
);
4750
}
4851

tools/public_api_guard/material/checkbox-testing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { TestElement } from '@angular/cdk/testing';
1414
// @public
1515
export interface CheckboxHarnessFilters extends BaseHarnessFilters {
1616
checked?: boolean;
17+
disabled?: boolean;
1718
label?: string | RegExp;
1819
name?: string;
1920
}

0 commit comments

Comments
 (0)