Skip to content

Commit aec12b6

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 0b9160b commit aec12b6

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
@@ -15,6 +15,9 @@ import {
1515
} from '@angular/cdk/testing';
1616
import {BaseListItemHarnessFilters, SubheaderHarnessFilters} from './list-harness-filters';
1717

18+
const iconSelector = '.mat-list-icon';
19+
const avatarSelector = '.mat-list-avatar';
20+
1821
/**
1922
* Gets a `HarnessPredicate` that applies the given `BaseListItemHarnessFilters` to the given
2023
* list item harness.
@@ -58,12 +61,12 @@ export const enum MatListItemSection {
5861
*/
5962
export class MatListItemHarnessBase extends ContentContainerComponentHarness<MatListItemSection> {
6063
private _lines = this.locatorForAll('.mat-line');
61-
private _avatar = this.locatorForOptional('.mat-list-avatar');
62-
private _icon = this.locatorForOptional('.mat-list-icon');
64+
private _avatar = this.locatorForOptional(avatarSelector);
65+
private _icon = this.locatorForOptional(iconSelector);
6366

6467
/** Gets the full text content of the list item (including text from any font icons). */
6568
async getText(): Promise<string> {
66-
return (await this.host()).text();
69+
return (await this.host()).text({exclude: `${iconSelector}, ${avatarSelector}`});
6770
}
6871

6972
/** 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)