Skip to content

Commit 8638456

Browse files
crisbetowagnermaciel
authored andcommitted
fix(material/list): exclude icons from harness getText result (#20845)
Excludes icons and avatars from the `MatListItemHarnessBase.getText` result. Fixes #20812. (cherry picked from commit dfdd422)
1 parent c9700df commit 8638456

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

src/material/list/testing/list-item-harness-base.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ import {
1414
} from '@angular/cdk/testing';
1515
import {BaseListItemHarnessFilters, SubheaderHarnessFilters} from './list-harness-filters';
1616

17+
const iconSelector = '.mat-list-icon';
18+
const avatarSelector = '.mat-list-avatar';
19+
1720
/**
1821
* Gets a `HarnessPredicate` that applies the given `BaseListItemHarnessFilters` to the given
1922
* list item harness.
@@ -52,12 +55,12 @@ export class MatSubheaderHarness extends ComponentHarness {
5255
*/
5356
export class MatListItemHarnessBase extends ComponentHarness {
5457
private _lines = this.locatorForAll('.mat-line');
55-
private _avatar = this.locatorForOptional('.mat-list-avatar');
56-
private _icon = this.locatorForOptional('.mat-list-icon');
58+
private _avatar = this.locatorForOptional(avatarSelector);
59+
private _icon = this.locatorForOptional(iconSelector);
5760

5861
/** Gets the full text content of the list item (including text from any font icons). */
5962
async getText(): Promise<string> {
60-
return (await this.host()).text();
63+
return (await this.host()).text({exclude: `${iconSelector}, ${avatarSelector}`});
6164
}
6265

6366
/** Gets the lines of text (`mat-line` elements) in this nav list item. */

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -395,8 +395,8 @@ export function runHarnessTests(
395395
<mat-list-item>
396396
<div matLine>Item </div>
397397
<div matLine>1</div>
398-
<svg matListIcon></svg>
399-
<svg matListAvatar></svg>
398+
<div matListIcon>icon</div>
399+
<div matListAvatar>Avatar</div>
400400
</mat-list-item>
401401
<div matSubheader>Section 1</div>
402402
<mat-divider></mat-divider>
@@ -419,8 +419,8 @@ class ListHarnessTest {}
419419
<mat-list-item (click)="lastClicked = 'Item 1'">
420420
<div matLine>Item </div>
421421
<div matLine>1</div>
422-
<svg matListIcon></svg>
423-
<svg matListAvatar></svg>
422+
<div matListIcon>icon</div>
423+
<div matListAvatar>Avatar</div>
424424
</mat-list-item>
425425
<div matSubheader>Section 1</div>
426426
<mat-divider></mat-divider>
@@ -445,8 +445,8 @@ class ActionListHarnessTest {
445445
<a mat-list-item (click)="onClick($event, 'Item 1')">
446446
<div matLine>Item </div>
447447
<div matLine>1</div>
448-
<svg matListIcon></svg>
449-
<svg matListAvatar></svg>
448+
<div matListIcon>icon</div>
449+
<div matListAvatar>Avatar</div>
450450
</a>
451451
<div matSubheader>Section 1</div>
452452
<mat-divider></mat-divider>
@@ -476,8 +476,8 @@ class NavListHarnessTest {
476476
<mat-list-option checkboxPosition="before">
477477
<div matLine>Item </div>
478478
<div matLine>1</div>
479-
<svg matListIcon></svg>
480-
<svg matListAvatar></svg>
479+
<div matListIcon>icon</div>
480+
<div matListAvatar>Avatar</div>
481481
</mat-list-option>
482482
<div matSubheader>Section 1</div>
483483
<mat-divider></mat-divider>

0 commit comments

Comments
 (0)