Skip to content

Commit 39afd3e

Browse files
authored
test(material/autocomplete): add disabled harness filter (#26137)
* test(material/autocomplete): add disabled harness filter * fixup! test(material/autocomplete): add disabled harness filter * test(material/legacy-autocomplete): add disabled harness filter
1 parent 324e4ed commit 39afd3e

File tree

7 files changed

+29
-8
lines changed

7 files changed

+29
-8
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,7 @@ import {BaseHarnessFilters} from '@angular/cdk/testing';
1212
export interface AutocompleteHarnessFilters extends BaseHarnessFilters {
1313
/** Only find instances whose associated input element matches the given value. */
1414
value?: string | RegExp;
15+
16+
/** Only find instances which match the given disabled state. */
17+
disabled?: boolean;
1518
}

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,12 @@ export class MatAutocompleteHarness extends _MatAutocompleteHarnessBase<
160160
this: ComponentHarnessConstructor<T>,
161161
options: AutocompleteHarnessFilters = {},
162162
): HarnessPredicate<T> {
163-
return new HarnessPredicate(this, options).addOption('value', options.value, (harness, value) =>
164-
HarnessPredicate.stringMatches(harness.getValue(), value),
165-
);
163+
return new HarnessPredicate(this, options)
164+
.addOption('value', options.value, (harness, value) =>
165+
HarnessPredicate.stringMatches(harness.getValue(), value),
166+
)
167+
.addOption('disabled', options.disabled, async (harness, disabled) => {
168+
return (await harness.isDisabled()) === disabled;
169+
});
166170
}
167171
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ export function runHarnessTests(
5252
expect(await disabled.isDisabled()).toBe(true);
5353
});
5454

55+
it('should filter by whether an autocomplete is disabled', async () => {
56+
const enabledInputs = await loader.getAllHarnesses(autocompleteHarness.with({disabled: false}));
57+
const disabledInputs = await loader.getAllHarnesses(autocompleteHarness.with({disabled: true}));
58+
expect(enabledInputs.length).toBe(4);
59+
expect(disabledInputs.length).toBe(1);
60+
});
61+
5562
it('should focus and blur an input', async () => {
5663
const input = await loader.getHarness(autocompleteHarness.with({selector: '#plain'}));
5764
expect(await input.isFocused()).toBe(false);

src/material/legacy-autocomplete/testing/autocomplete-harness-filters.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,7 @@ import {BaseHarnessFilters} from '@angular/cdk/testing';
1616
export interface LegacyAutocompleteHarnessFilters extends BaseHarnessFilters {
1717
/** Only find instances whose associated input element matches the given value. */
1818
value?: string | RegExp;
19+
20+
/** Only find instances which match the given disabled state. */
21+
disabled?: boolean;
1922
}

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,12 @@ export class MatLegacyAutocompleteHarness extends _MatAutocompleteHarnessBase<
4545
static with(
4646
options: LegacyAutocompleteHarnessFilters = {},
4747
): HarnessPredicate<MatLegacyAutocompleteHarness> {
48-
return new HarnessPredicate(MatLegacyAutocompleteHarness, options).addOption(
49-
'value',
50-
options.value,
51-
(harness, value) => HarnessPredicate.stringMatches(harness.getValue(), value),
52-
);
48+
return new HarnessPredicate(MatLegacyAutocompleteHarness, options)
49+
.addOption('value', options.value, (harness, value) =>
50+
HarnessPredicate.stringMatches(harness.getValue(), value),
51+
)
52+
.addOption('disabled', options.disabled, async (harness, disabled) => {
53+
return (await harness.isDisabled()) === disabled;
54+
});
5355
}
5456
}

tools/public_api_guard/material/autocomplete-testing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { OptionHarnessFilters } from '@angular/material/core/testing';
1515

1616
// @public
1717
export interface AutocompleteHarnessFilters extends BaseHarnessFilters {
18+
disabled?: boolean;
1819
value?: string | RegExp;
1920
}
2021

tools/public_api_guard/material/legacy-autocomplete-testing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { MatLegacyOptionHarness } from '@angular/material/legacy-core/testing';
1414

1515
// @public @deprecated
1616
export interface LegacyAutocompleteHarnessFilters extends BaseHarnessFilters {
17+
disabled?: boolean;
1718
value?: string | RegExp;
1819
}
1920

0 commit comments

Comments
 (0)