69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
|
|
import {Component, TemplateRef, ViewChild, inject} from '@angular/core';
|
||
|
|
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||
|
|
import {HarnessLoader} from '@angular/cdk/testing';
|
||
|
|
import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed';
|
||
|
|
import {
|
||
|
|
MatBottomSheet,
|
||
|
|
MatBottomSheetConfig,
|
||
|
|
MatBottomSheetModule,
|
||
|
|
} from '@angular/material/bottom-sheet';
|
||
|
|
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
|
||
|
|
import {MatBottomSheetHarness} from './bottom-sheet-harness';
|
||
|
|
|
||
|
|
describe('MatBottomSheetHarness', () => {
|
||
|
|
let fixture: ComponentFixture<BottomSheetHarnessTest>;
|
||
|
|
let loader: HarnessLoader;
|
||
|
|
|
||
|
|
beforeEach(() => {
|
||
|
|
TestBed.configureTestingModule({
|
||
|
|
imports: [MatBottomSheetModule, NoopAnimationsModule, BottomSheetHarnessTest],
|
||
|
|
});
|
||
|
|
|
||
|
|
fixture = TestBed.createComponent(BottomSheetHarnessTest);
|
||
|
|
fixture.detectChanges();
|
||
|
|
loader = TestbedHarnessEnvironment.documentRootLoader(fixture);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('should load harness for a bottom sheet', async () => {
|
||
|
|
fixture.componentInstance.open();
|
||
|
|
const bottomSheets = await loader.getAllHarnesses(MatBottomSheetHarness);
|
||
|
|
expect(bottomSheets.length).toBe(1);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('should be able to get aria-label of the bottom sheet', async () => {
|
||
|
|
fixture.componentInstance.open({ariaLabel: 'Confirm purchase.'});
|
||
|
|
const bottomSheet = await loader.getHarness(MatBottomSheetHarness);
|
||
|
|
expect(await bottomSheet.getAriaLabel()).toBe('Confirm purchase.');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('should be able to dismiss the bottom sheet', async () => {
|
||
|
|
fixture.componentInstance.open();
|
||
|
|
let bottomSheets = await loader.getAllHarnesses(MatBottomSheetHarness);
|
||
|
|
|
||
|
|
expect(bottomSheets.length).toBe(1);
|
||
|
|
await bottomSheets[0].dismiss();
|
||
|
|
|
||
|
|
bottomSheets = await loader.getAllHarnesses(MatBottomSheetHarness);
|
||
|
|
expect(bottomSheets.length).toBe(0);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
@Component({
|
||
|
|
template: `
|
||
|
|
<ng-template>
|
||
|
|
Hello from the bottom sheet!
|
||
|
|
</ng-template>
|
||
|
|
`,
|
||
|
|
standalone: true,
|
||
|
|
imports: [MatBottomSheetModule],
|
||
|
|
})
|
||
|
|
class BottomSheetHarnessTest {
|
||
|
|
readonly bottomSheet = inject(MatBottomSheet);
|
||
|
|
|
||
|
|
@ViewChild(TemplateRef) template: TemplateRef<any>;
|
||
|
|
|
||
|
|
open(config?: MatBottomSheetConfig) {
|
||
|
|
return this.bottomSheet.open(this.template, config);
|
||
|
|
}
|
||
|
|
}
|