import { Component, NgModule } from '@angular/core';
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { BsModalService, ModalModule } from '../index';
import { MODAL_CONFIG_DEFAULT_OVERRIDE } from '../modal-options.class';
@Component({ template: '
Dummy Component
' })
class DummyComponent {
// eslint-disable-next-line @typescript-eslint/no-empty-function,@typescript-eslint/no-unused-vars
constructor(modalService: BsModalService) {}
}
@Component({
template: 'Test Component
'
})
class TestModalComponent {}
@NgModule({
declarations: [TestModalComponent],
providers: [{ provide: MODAL_CONFIG_DEFAULT_OVERRIDE, useValue: { ignoreBackdropClick: true, keyboard: false } }],
entryComponents: [TestModalComponent]
})
export class TestModule {}
describe('Modal service', () => {
let fixture: ComponentFixture;
let modalService: BsModalService;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [DummyComponent],
providers: [BsModalService],
imports: [ModalModule.forRoot(), TestModule]
});
fixture = TestBed.createComponent(DummyComponent);
modalService = fixture.debugElement.injector.get(BsModalService);
fixture.detectChanges();
});
it('should replace modal setting by default', () => {
expect(modalService.config.ignoreBackdropClick).toBeTruthy();
});
it('should be able to replace module defined default config on show', () => {
modalService.show(TestModalComponent, { ignoreBackdropClick: false });
expect(modalService.config.ignoreBackdropClick).toBeFalsy();
});
});