71712: confirmation modal for export + tests &

- request causing error because of issue #756, commented out for now &
- drop event prevention in a HostListener like dragover event
This commit is contained in:
Marie Verdonck
2020-07-27 18:17:37 +02:00
parent 66cdf9dd18
commit 3e0f4a54e6
9 changed files with 228 additions and 14 deletions

View File

@@ -0,0 +1,117 @@
import { DebugElement, NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
import { TranslateModule } from '@ngx-translate/core';
import { ConfirmationModalComponent } from './confirmation-modal.component';
describe('ConfirmationModalComponent', () => {
let component: ConfirmationModalComponent;
let fixture: ComponentFixture<ConfirmationModalComponent>;
let debugElement: DebugElement;
const modalStub = jasmine.createSpyObj('modalStub', ['close']);
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot()],
declarations: [ConfirmationModalComponent],
providers: [
{ provide: NgbActiveModal, useValue: modalStub }
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ConfirmationModalComponent);
component = fixture.componentInstance;
debugElement = fixture.debugElement;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
describe('close', () => {
beforeEach(() => {
component.close();
});
it('should call the close method on the active modal', () => {
expect(modalStub.close).toHaveBeenCalled();
});
});
describe('confirmPressed', () => {
beforeEach(() => {
spyOn(component.response, 'emit');
component.confirmPressed();
});
it('should call the close method on the active modal', () => {
expect(modalStub.close).toHaveBeenCalled();
});
it('event emitter should emit true', () => {
expect(component.response.emit).toHaveBeenCalledWith(true);
});
});
describe('cancelPressed', () => {
beforeEach(() => {
spyOn(component.response, 'emit');
component.cancelPressed();
});
it('should call the close method on the active modal', () => {
expect(modalStub.close).toHaveBeenCalled();
});
it('event emitter should emit false', () => {
expect(component.response.emit).toHaveBeenCalledWith(false);
});
});
describe('when the click method emits on close button', () => {
beforeEach(fakeAsync(() => {
spyOn(component, 'close');
debugElement.query(By.css('button.close')).triggerEventHandler('click', {});
tick();
fixture.detectChanges();
}));
it('should call the close method on the component', () => {
expect(component.close).toHaveBeenCalled();
});
});
describe('when the click method emits on cancel button', () => {
beforeEach(fakeAsync(() => {
spyOn(component, 'close');
spyOn(component.response, 'emit');
debugElement.query(By.css('button.cancel')).triggerEventHandler('click', {});
tick();
fixture.detectChanges();
}));
it('should call the close method on the component', () => {
expect(component.close).toHaveBeenCalled();
});
it('event emitter should emit false', () => {
expect(component.response.emit).toHaveBeenCalledWith(false);
});
});
describe('when the click method emits on confirm button', () => {
beforeEach(fakeAsync(() => {
spyOn(component, 'close');
spyOn(component.response, 'emit');
debugElement.query(By.css('button.confirm')).triggerEventHandler('click', {});
tick();
fixture.detectChanges();
}));
it('should call the close method on the component', () => {
expect(component.close).toHaveBeenCalled();
});
it('event emitter should emit true', () => {
expect(component.response.emit).toHaveBeenCalledWith(true);
});
});
});