Skip to content

Commit 988c945

Browse files
authored
docs(material/grid-list): add harness example for grid-list (#21470)
1 parent 5f9ef44 commit 988c945

File tree

5 files changed

+89
-0
lines changed

5 files changed

+89
-0
lines changed

src/components-examples/material/grid-list/BUILD.bazel

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,13 @@ ng_module(
1111
]),
1212
module_name = "@angular/components-examples/material/grid-list",
1313
deps = [
14+
"//src/cdk/testing",
15+
"//src/cdk/testing/testbed",
1416
"//src/material/grid-list",
17+
"//src/material/grid-list/testing",
18+
"@npm//@angular/platform-browser",
19+
"@npm//@angular/platform-browser-dynamic",
20+
"@npm//@types/jasmine",
1521
],
1622
)
1723

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<mat-grid-list cols="2" rowHeight="100px">
2+
<mat-grid-tile>Tile 1 (no header, no footer)</mat-grid-tile>
3+
<mat-grid-tile>
4+
<mat-grid-tile-header>Tile 2</mat-grid-tile-header>
5+
</mat-grid-tile>
6+
<mat-grid-tile colspan="2">
7+
<mat-grid-tile-header>Tile 3</mat-grid-tile-header>
8+
<mat-grid-tile-footer>Tile 3 footer</mat-grid-tile-footer>
9+
</mat-grid-tile>
10+
<mat-grid-tile>
11+
<mat-grid-tile-header>Tile 4</mat-grid-tile-header>
12+
</mat-grid-tile>
13+
</mat-grid-list>
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import {TestBed, ComponentFixture, waitForAsync} from '@angular/core/testing';
2+
import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed';
3+
import {MatGridListHarness, MatGridTileHarness} from '@angular/material/grid-list/testing';
4+
import {HarnessLoader} from '@angular/cdk/testing';
5+
import {BrowserDynamicTestingModule, platformBrowserDynamicTesting}
6+
from '@angular/platform-browser-dynamic/testing';
7+
import {MatGridListModule} from '@angular/material/grid-list';
8+
import {GridListHarnessExample} from './grid-list-harness-example';
9+
10+
describe('GridListHarnessExample', () => {
11+
let fixture: ComponentFixture<GridListHarnessExample>;
12+
let loader: HarnessLoader;
13+
14+
beforeAll(() => {
15+
TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
16+
});
17+
18+
beforeEach(
19+
waitForAsync(() => {
20+
TestBed.configureTestingModule({
21+
imports: [MatGridListModule],
22+
declarations: [GridListHarnessExample]
23+
}).compileComponents();
24+
fixture = TestBed.createComponent(GridListHarnessExample);
25+
fixture.detectChanges();
26+
loader = TestbedHarnessEnvironment.loader(fixture);
27+
})
28+
);
29+
30+
it('should be able to load grid-list harnesses', async () => {
31+
const harnesses = await loader.getAllHarnesses(MatGridListHarness);
32+
expect(harnesses.length).toBe(1);
33+
});
34+
35+
it('should be able to load grid-tile harnesses', async () => {
36+
const harnesses = await loader.getAllHarnesses(MatGridTileHarness);
37+
expect(harnesses.length).toBe(4);
38+
});
39+
40+
it('should be able to get tiles of grid-list with filters', async () => {
41+
const gridList = await loader.getHarness(MatGridListHarness);
42+
const tiles = await gridList.getTiles({headerText: /Tile [34]/});
43+
expect(tiles.length).toBe(2);
44+
});
45+
46+
it('should be able to check whether tile has header', async () => {
47+
const tiles = await loader.getAllHarnesses(MatGridTileHarness);
48+
expect(await tiles[0].hasHeader()).toBe(false);
49+
expect(await (await tiles[0].host()).text()).toBe('Tile 1 (no header, no footer)');
50+
});
51+
52+
it('should be able to check whether tile has footer', async () => {
53+
const tiles = await loader.getAllHarnesses(MatGridTileHarness);
54+
expect(await tiles[2].hasFooter()).toBe(true);
55+
expect(await tiles[2].getFooterText()).toBe('Tile 3 footer');
56+
});
57+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import {Component} from '@angular/core';
2+
3+
/**
4+
* @title Testing with MatGridListHarness
5+
*/
6+
@Component({
7+
selector: 'grid-list-harness-example',
8+
templateUrl: 'grid-list-harness-example.html',
9+
})
10+
export class GridListHarnessExample {}

src/components-examples/material/grid-list/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@ import {NgModule} from '@angular/core';
33
import {MatGridListModule} from '@angular/material/grid-list';
44
import {GridListDynamicExample} from './grid-list-dynamic/grid-list-dynamic-example';
55
import {GridListOverviewExample} from './grid-list-overview/grid-list-overview-example';
6+
import {GridListHarnessExample} from './grid-list-harness/grid-list-harness-example';
67

78
export {
89
GridListDynamicExample,
10+
GridListHarnessExample,
911
GridListOverviewExample,
1012
};
1113

1214
const EXAMPLES = [
1315
GridListDynamicExample,
16+
GridListHarnessExample,
1417
GridListOverviewExample,
1518
];
1619

0 commit comments

Comments
 (0)