blob: 50f2357e2645dabbb5e4cf26372dc60ee79a8258 [file] [log] [blame]
/********************************************************************************
* Copyright © 2018 Mettenmeier GmbH.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { NgbModule, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
import { CalculateDialogComponent } from './calculate-dialog.component';
import { SharedModule } from '@shared/shared.module';
import { ModalTransferObject } from '@shared/model/ModalTransferObject';
describe('CalculateDialogComponent', () => {
let component: CalculateDialogComponent;
let fixture: ComponentFixture<CalculateDialogComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [CalculateDialogComponent],
imports: [
NgbModule.forRoot(),
SharedModule
],
providers: [
NgbActiveModal
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(CalculateDialogComponent);
component = fixture.componentInstance;
component.form.patchValue({ standbyGroupId: 1 });
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
it('should send calculation data to parent component if the form is valid', () => {
component.form.patchValue({ validFrom: '2023-05-08T05:05:05.789Z', validTo: '2023-05-08T05:05:05.789Z' });
component.calculate();
component.modalAction.subscribe((transferData: ModalTransferObject) => {
expect(transferData.action).toBe('calculate');
});
});
describe('setDefaultDate', () => {
it('should set validFrom to current day', () => {
const date = new Date();
component.setDefaultDate('validFrom');
expect(component.form.controls.validFrom.value).toEqual({
day: date.getDate(), month: date.getMonth() + 1, year: date.getFullYear()
});
});
it('should set validTo to current day + 15 years', () => {
const date = new Date();
component.setDefaultDate('validTo');
expect(component.form.controls.validTo.value).toEqual({
day: date.getDate(), month: date.getMonth() + 1, year: date.getFullYear() + 15
});
});
});
describe('calculate()', () => {
it('should calculate if form is valid', () => {
component.setDefaultDate('validFrom');
component.setDefaultDate('validTo');
component.form.patchValue({ startIdOfUser: 1 });
component.calculate();
});
it('shouldn´t calculate if form is invalid', () => {
component.form.patchValue({ startIdOfUser: '' });
component.calculate();
});
});
});