Skip to content

Commit

Permalink
test(material/checkbox): add disabled harness filter (angular#26155)
Browse files Browse the repository at this point in the history
* test(material/checkbox): add disabled harness filter

* test(material/legacy-checkbox): add disabled harness filter
  • Loading branch information
wagnermaciel committed Dec 9, 2022
1 parent 15a99dc commit 769ea45
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/material/checkbox/testing/checkbox-harness-filters.ts
Expand Up @@ -16,4 +16,6 @@ export interface CheckboxHarnessFilters extends BaseHarnessFilters {
name?: string;
/** Only find instances with the given checked value. */
checked?: boolean;
/** Only find instances which match the given disabled state. */
disabled?: boolean;
}
3 changes: 3 additions & 0 deletions src/material/checkbox/testing/checkbox-harness.ts
Expand Up @@ -162,6 +162,9 @@ export class MatCheckboxHarness extends _MatCheckboxHarnessBase {
options.checked,
async (harness, checked) => (await harness.isChecked()) == checked,
)
.addOption('disabled', options.disabled, async (harness, disabled) => {
return (await harness.isDisabled()) === disabled;
})
);
}

Expand Down
13 changes: 13 additions & 0 deletions src/material/checkbox/testing/shared.spec.ts
Expand Up @@ -51,6 +51,19 @@ export function runHarnessTests(
expect(await checkboxes[0].getLabelText()).toBe('Second');
});

it('should load checkbox with disabled state', async () => {
let enabledCheckboxes = await loader.getAllHarnesses(checkboxHarness.with({disabled: false}));
let disabledCheckboxes = await loader.getAllHarnesses(checkboxHarness.with({disabled: true}));
expect(enabledCheckboxes.length).toBe(1);
expect(disabledCheckboxes.length).toBe(1);

fixture.componentInstance.disabled = false;
enabledCheckboxes = await loader.getAllHarnesses(checkboxHarness.with({disabled: false}));
disabledCheckboxes = await loader.getAllHarnesses(checkboxHarness.with({disabled: true}));
expect(enabledCheckboxes.length).toBe(2);
expect(disabledCheckboxes.length).toBe(0);
});

it('should get checked state', async () => {
const [checkedCheckbox, uncheckedCheckbox] = await loader.getAllHarnesses(checkboxHarness);
expect(await checkedCheckbox.isChecked()).toBe(true);
Expand Down
3 changes: 3 additions & 0 deletions src/material/legacy-checkbox/testing/checkbox-harness.ts
Expand Up @@ -43,6 +43,9 @@ export class MatLegacyCheckboxHarness extends _MatCheckboxHarnessBase {
options.checked,
async (harness, checked) => (await harness.isChecked()) == checked,
)
.addOption('disabled', options.disabled, async (harness, disabled) => {
return (await harness.isDisabled()) === disabled;
})
);
}

Expand Down
1 change: 1 addition & 0 deletions tools/public_api_guard/material/checkbox-testing.md
Expand Up @@ -14,6 +14,7 @@ import { TestElement } from '@angular/cdk/testing';
// @public
export interface CheckboxHarnessFilters extends BaseHarnessFilters {
checked?: boolean;
disabled?: boolean;
label?: string | RegExp;
name?: string;
}
Expand Down

0 comments on commit 769ea45

Please sign in to comment.