File tree 2 files changed +52
-0
lines changed
apps/example-app/src/app/examples
2 files changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
2
+ import { MatButtonHarness } from '@angular/material/button/testing';
3
+ import { MatSnackBarHarness } from '@angular/material/snack-bar/testing';
4
+ import { render, screen } from '@testing-library/angular';
5
+ import user from '@testing-library/user-event';
6
+
7
+ import { SnackBarComponent } from './20-test-harness';
8
+
9
+ test('can be used with TestHarness', async () => {
10
+ const view = await render(SnackBarComponent);
11
+ const loader = TestbedHarnessEnvironment.documentRootLoader(view.fixture);
12
+
13
+ const buttonHarness = await loader.getHarness(MatButtonHarness);
14
+ const button = await buttonHarness.host();
15
+ button.click();
16
+
17
+ const snackbarHarness = await loader.getHarness(MatSnackBarHarness);
18
+ expect(await snackbarHarness.getMessage()).toMatch(/Pizza Party!!!/i);
19
+
20
+ expect(screen.getByText(/Pizza Party!!!/i)).toBeInTheDocument();
21
+ });
22
+
23
+ test('can be used in combination with TestHarness', async () => {
24
+ const view = await render(SnackBarComponent);
25
+ const loader = TestbedHarnessEnvironment.documentRootLoader(view.fixture);
26
+
27
+ user.click(screen.getByRole('button'));
28
+
29
+ const snackbarHarness = await loader.getHarness(MatSnackBarHarness);
30
+ expect(await snackbarHarness.getMessage()).toMatch(/Pizza Party!!!/i);
31
+
32
+ expect(screen.getByText(/Pizza Party!!!/i)).toBeInTheDocument();
33
+ });
Original file line number Diff line number Diff line change
1
+ import { Component } from '@angular/core';
2
+ import { MatButtonModule } from '@angular/material/button';
3
+ import { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar';
4
+
5
+ @Component({
6
+ selector: 'app-harness',
7
+ standalone: true,
8
+ imports: [MatButtonModule, MatSnackBarModule],
9
+ template: `
10
+ <button mat-stroked-button (click)="openSnackBar()" aria-label="Show an example snack-bar">Pizza party</button>
11
+ `,
12
+ })
13
+ export class SnackBarComponent {
14
+ constructor(private snackBar: MatSnackBar) {}
15
+
16
+ openSnackBar() {
17
+ return this.snackBar.open('Pizza Party!!!');
18
+ }
19
+ }
You can’t perform that action at this time.
0 commit comments