Skip to content

Commit ea081fe

Browse files
authored
feat(multiple): Add a harness filter option for checked checkboxes, radios, and slide-toggles (#24625)
* feat(multiple): Add a harness filter option for checked checkboxes, radios, and slide-toggles * fixup! feat(multiple): Add a harness filter option for checked checkboxes, radios, and slide-toggles
1 parent 12b5387 commit ea081fe

File tree

12 files changed

+41
-2
lines changed

12 files changed

+41
-2
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ export class MatCheckboxHarness extends _MatCheckboxHarnessBase {
3535
options.name,
3636
async (harness, name) => (await harness.getName()) === name,
3737
)
38+
.addOption(
39+
'checked',
40+
options.checked,
41+
async (harness, checked) => (await harness.isChecked()) == checked,
42+
)
3843
);
3944
}
4045

src/material-experimental/mdc-radio/testing/radio-harness.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,12 @@ export class MatRadioButtonHarness extends _MatRadioButtonHarnessBase {
5555
.addOption('label', options.label, (harness, label) =>
5656
HarnessPredicate.stringMatches(harness.getLabelText(), label),
5757
)
58-
.addOption('name', options.name, async (harness, name) => (await harness.getName()) === name);
58+
.addOption('name', options.name, async (harness, name) => (await harness.getName()) === name)
59+
.addOption(
60+
'checked',
61+
options.checked,
62+
async (harness, checked) => (await harness.isChecked()) == checked,
63+
);
5964
}
6065

6166
protected _textLabel = this.locatorFor('label');

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
@@ -39,6 +39,11 @@ export class MatSlideToggleHarness extends _MatSlideToggleHarnessBase {
3939
options.name,
4040
async (harness, name) => (await harness.getName()) === name,
4141
)
42+
.addOption(
43+
'checked',
44+
options.checked,
45+
async (harness, checked) => (await harness.isChecked()) == checked,
46+
)
4247
);
4348
}
4449

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,6 @@ export interface CheckboxHarnessFilters extends BaseHarnessFilters {
1414
label?: string | RegExp;
1515
/** Only find instances whose name attribute is the given value. */
1616
name?: string;
17+
/** Only find instances with the given checked value. */
18+
checked?: boolean;
1719
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,11 @@ export class MatCheckboxHarness extends _MatCheckboxHarnessBase {
152152
options.name,
153153
async (harness, name) => (await harness.getName()) === name,
154154
)
155+
.addOption(
156+
'checked',
157+
options.checked,
158+
async (harness, checked) => (await harness.isChecked()) == checked,
159+
)
155160
);
156161
}
157162

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,6 @@ export interface RadioButtonHarnessFilters extends BaseHarnessFilters {
2020
label?: string | RegExp;
2121
/** Only find instances whose name attribute is the given value. */
2222
name?: string;
23+
/** Only find instances with the given checked value. */
24+
checked?: boolean;
2325
}

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,12 @@ export class MatRadioButtonHarness extends _MatRadioButtonHarnessBase {
277277
.addOption('label', options.label, (harness, label) =>
278278
HarnessPredicate.stringMatches(harness.getLabelText(), label),
279279
)
280-
.addOption('name', options.name, async (harness, name) => (await harness.getName()) === name);
280+
.addOption('name', options.name, async (harness, name) => (await harness.getName()) === name)
281+
.addOption(
282+
'checked',
283+
options.checked,
284+
async (harness, checked) => (await harness.isChecked()) == checked,
285+
);
281286
}
282287

283288
protected _textLabel = this.locatorFor('.mat-radio-label-content');

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,6 @@ export interface SlideToggleHarnessFilters extends BaseHarnessFilters {
1414
label?: string | RegExp;
1515
/** Only find instances whose name is the given value. */
1616
name?: string;
17+
/** Only find instances with the given checked value. */
18+
checked?: boolean;
1719
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,11 @@ export class MatSlideToggleHarness extends _MatSlideToggleHarnessBase {
127127
options.name,
128128
async (harness, name) => (await harness.getName()) === name,
129129
)
130+
.addOption(
131+
'checked',
132+
options.checked,
133+
async (harness, checked) => (await harness.isChecked()) == checked,
134+
)
130135
);
131136
}
132137

tools/public_api_guard/material/checkbox-testing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { TestElement } from '@angular/cdk/testing';
1212

1313
// @public
1414
export interface CheckboxHarnessFilters extends BaseHarnessFilters {
15+
checked?: boolean;
1516
label?: string | RegExp;
1617
name?: string;
1718
}

tools/public_api_guard/material/radio-testing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export abstract class _MatRadioGroupHarnessBase<ButtonType extends ComponentHarn
7070

7171
// @public
7272
export interface RadioButtonHarnessFilters extends BaseHarnessFilters {
73+
checked?: boolean;
7374
label?: string | RegExp;
7475
name?: string;
7576
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export abstract class _MatSlideToggleHarnessBase extends ComponentHarness {
4242

4343
// @public
4444
export interface SlideToggleHarnessFilters extends BaseHarnessFilters {
45+
checked?: boolean;
4546
label?: string | RegExp;
4647
name?: string;
4748
}

0 commit comments

Comments
 (0)