Skip to content

Commit 324e4ed

Browse files
authored
test(material/slider): add disabled harness filter (#26136)
* test(material/slider): add disabled harness filter * fixup! test(material/slider): add disabled harness filter
1 parent 2e5fab6 commit 324e4ed

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ export const enum ThumbPosition {
1717
export interface SliderHarnessFilters extends BaseHarnessFilters {
1818
/** Filters out only range/non-range sliders. */
1919
isRange?: boolean;
20+
21+
/** Only find instances which match the given disabled state. */
22+
disabled?: boolean;
2023
}
2124

2225
/** A set of criteria that can be used to filter a list of `MatSliderThumbHarness` instances. */

src/material/slider/testing/slider-harness.spec.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,20 @@ describe('MDC-based MatSliderHarness', () => {
4747
expect(await slider.isDisabled()).toBe(true);
4848
});
4949

50+
it('should filter by whether a slider is disabled', async () => {
51+
let enabledSliders = await loader.getAllHarnesses(MatSliderHarness.with({disabled: false}));
52+
let disabledSliders = await loader.getAllHarnesses(MatSliderHarness.with({disabled: true}));
53+
expect(enabledSliders.length).toBe(2);
54+
expect(disabledSliders.length).toBe(0);
55+
56+
fixture.componentInstance.singleSliderDisabled = true;
57+
58+
enabledSliders = await loader.getAllHarnesses(MatSliderHarness.with({disabled: false}));
59+
disabledSliders = await loader.getAllHarnesses(MatSliderHarness.with({disabled: true}));
60+
expect(enabledSliders.length).toBe(1);
61+
expect(disabledSliders.length).toBe(1);
62+
});
63+
5064
it('should get the min/max values of a single-thumb slider', async () => {
5165
const slider = await loader.getHarness(MatSliderHarness);
5266
const [min, max] = await parallel(() => [slider.getMinValue(), slider.getMaxValue()]);

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ export class MatSliderHarness extends ComponentHarness {
2828
this: ComponentHarnessConstructor<T>,
2929
options: SliderHarnessFilters = {},
3030
): HarnessPredicate<T> {
31-
return new HarnessPredicate(this, options).addOption(
32-
'isRange',
33-
options.isRange,
34-
async (harness, value) => {
31+
return new HarnessPredicate(this, options)
32+
.addOption('isRange', options.isRange, async (harness, value) => {
3533
return (await harness.isRange()) === value;
36-
},
37-
);
34+
})
35+
.addOption('disabled', options.disabled, async (harness, disabled) => {
36+
return (await harness.isDisabled()) === disabled;
37+
});
3838
}
3939

4040
/** Gets the start thumb of the slider (only applicable for range sliders). */

tools/public_api_guard/material/slider-testing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export class MatSliderThumbHarness extends ComponentHarness {
4545

4646
// @public
4747
export interface SliderHarnessFilters extends BaseHarnessFilters {
48+
disabled?: boolean;
4849
isRange?: boolean;
4950
}
5051

0 commit comments

Comments
 (0)