import { ComponentFixture, TestBed } from '@angular/core/testing'; import { AddSummaryDialogComponent } from './add-summary-dialog.component'; import {ModalComponent} from '../../../modals/modal/modal.component'; import {DirtyGuard} from '../../../confirm-navigation-if-dirty.framework'; import {AngularMaterialModule} from '../../../modules/angular-material.module'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; describe('AddSummaryDialogComponent', () => { let component: AddSummaryDialogComponent; let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [ AddSummaryDialogComponent, ModalComponent ], imports: [AngularMaterialModule, NoopAnimationsModule], providers: [ {provide: DirtyGuard, useValue: {canDeactivate: () => true}} ] }) .compileComponents(); }); beforeEach(() => { fixture = TestBed.createComponent(AddSummaryDialogComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); it('says it\'s not visible if it has no modal yet (because we\'re not done rendering)', () => { component.modalComponent = undefined; expect(component.isVisible()).toBeFalse(); }); it('says it\'s visible if modal is visible', () => { component.modalComponent?.setVisible(true); expect(component.isVisible()).toBeTrue(); }); it('says it\'s not visible modal is not visible', () => { component.modalComponent?.setVisible(false); expect(component.isVisible()).toBeFalse(); }); it('shows dialog when visible === true', () => { component.setVisible(true); fixture.detectChanges(); expect(component.isVisible()).toBeTrue(); }); it('hides dialog when visible === false', () => { component.setVisible(false); fixture.detectChanges(); expect(component.isVisible()).toBeFalse(); }); });