Skip to content

Commit f5e6d24

Browse files
annieywwagnermaciel
authored andcommitted
docs(material/badge): add badge harness example (#20832)
(cherry picked from commit 3d15ecb)
1 parent 66a770c commit f5e6d24

File tree

5 files changed

+91
-1
lines changed

5 files changed

+91
-1
lines changed

src/components-examples/material/badge/BUILD.bazel

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,15 @@ ng_module(
1111
]),
1212
module_name = "@angular/components-examples/material/badge",
1313
deps = [
14+
"//src/cdk/testing",
15+
"//src/cdk/testing/testbed",
1416
"//src/material/badge",
17+
"//src/material/badge/testing",
1518
"//src/material/button",
1619
"//src/material/icon",
20+
"@npm//@angular/platform-browser",
21+
"@npm//@angular/platform-browser-dynamic",
22+
"@npm//@types/jasmine",
1723
],
1824
)
1925

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<button mat-button id="simple" [matBadge]="simpleContent">Simple</button>
2+
<button mat-button
3+
id="overlapping"
4+
matBadge="O"
5+
[matBadgeOverlap]="overlap">Overlapping</button>
6+
<button
7+
mat-button
8+
id="disabled"
9+
matBadge="D"
10+
[matBadgeDisabled]="disabled">Disabled</button>
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import {TestBed, ComponentFixture, waitForAsync} from '@angular/core/testing';
2+
import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed';
3+
import {MatBadgeHarness} from '@angular/material/badge/testing';
4+
import {HarnessLoader} from '@angular/cdk/testing';
5+
import {BrowserDynamicTestingModule, platformBrowserDynamicTesting}
6+
from '@angular/platform-browser-dynamic/testing';
7+
import {MatBadgeModule} from '@angular/material/badge';
8+
import {BadgeHarnessExample} from './badge-harness-example';
9+
10+
describe('BadgeHarnessExample', () => {
11+
let fixture: ComponentFixture<BadgeHarnessExample>;
12+
let loader: HarnessLoader;
13+
14+
beforeAll(() => {
15+
TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
16+
});
17+
18+
beforeEach(
19+
waitForAsync(() => {
20+
TestBed.configureTestingModule({
21+
imports: [MatBadgeModule],
22+
declarations: [BadgeHarnessExample]
23+
}).compileComponents();
24+
fixture = TestBed.createComponent(BadgeHarnessExample);
25+
fixture.detectChanges();
26+
loader = TestbedHarnessEnvironment.loader(fixture);
27+
})
28+
);
29+
30+
it('should load all badge harnesses', async () => {
31+
const badges = await loader.getAllHarnesses(MatBadgeHarness);
32+
expect(badges.length).toBe(3);
33+
});
34+
35+
it('should be able to get the text of a badge', async () => {
36+
const badge = await loader.getHarness(MatBadgeHarness.with({selector: '#simple'}));
37+
38+
expect(await badge.getText()).toBe('S');
39+
fixture.componentInstance.simpleContent = 'Changed';
40+
expect(await badge.getText()).toBe('Changed');
41+
});
42+
43+
it('should get whether a badge is overlapping', async () => {
44+
const badge = await loader.getHarness(MatBadgeHarness.with({selector: '#overlapping'}));
45+
46+
expect(await badge.isOverlapping()).toBe(true);
47+
fixture.componentInstance.overlap = false;
48+
expect(await badge.isOverlapping()).toBe(false);
49+
});
50+
51+
it('should get whether a badge is disabled', async () => {
52+
const badge = await loader.getHarness(MatBadgeHarness.with({selector: '#disabled'}));
53+
54+
expect(await badge.isDisabled()).toBe(true);
55+
fixture.componentInstance.disabled = false;
56+
expect(await badge.isDisabled()).toBe(false);
57+
});
58+
});
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import {Component} from '@angular/core';
2+
3+
/**
4+
* @title Testing with MatBadgeHarness
5+
*/
6+
@Component({
7+
selector: 'badge-harness-example',
8+
templateUrl: 'badge-harness-example.html',
9+
})
10+
export class BadgeHarnessExample {
11+
simpleContent = 'S';
12+
overlap = true;
13+
disabled = true;
14+
}

src/components-examples/material/badge/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ import {MatBadgeModule} from '@angular/material/badge';
33
import {MatButtonModule} from '@angular/material/button';
44
import {MatIconModule} from '@angular/material/icon';
55
import {BadgeOverviewExample} from './badge-overview/badge-overview-example';
6+
import {BadgeHarnessExample} from './badge-harness/badge-harness-example';
67

7-
export {BadgeOverviewExample};
8+
export {BadgeOverviewExample, BadgeHarnessExample};
89

910
const EXAMPLES = [
1011
BadgeOverviewExample,
12+
BadgeHarnessExample
1113
];
1214

1315
@NgModule({

0 commit comments

Comments
 (0)