Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #211 from Promact/incLeaveReportCodeCoverage
Increased leave report code coverage
- Loading branch information
Showing
6 changed files
with
283 additions
and
123 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
155 changes: 104 additions & 51 deletions
155
...Promact.Erp.Web/app/leaveReport/leaveReport-Details/leaveReport-Details.component.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,57 +1,110 @@ | ||
//declare let describe, it, beforeEach, expect; | ||
//import { async, inject, TestBed, ComponentFixture, tick, fakeAsync } from '@angular/core/testing'; | ||
//import { Provider } from "@angular/core"; | ||
//import { Router, ActivatedRoute, RouterModule, Routes } from '@angular/router'; | ||
//import { Observable } from 'rxjs/Observable'; | ||
//import { RouterLinkStubDirective } from '../../shared/mock/mock.routerLink'; | ||
//import { LeaveModule } from '../../leaveReport/leaveReport.module'; | ||
//import { LeaveReportService } from '../leaveReport.service'; | ||
//import { MockLeaveReportService } from '../../shared/mock/mock.leaveReport.service'; | ||
//import { StringConstant } from '../../shared/stringConstant'; | ||
//import { LeaveReportDetailsComponent } from './leaveReport-Details.component'; | ||
//import { LoaderService } from '../../shared/loader.service'; | ||
//import { Md2SelectChange } from 'md2'; | ||
//import { AppModule } from '../../app.module'; | ||
|
||
//let promise: TestBed; | ||
|
||
//describe('LeaveReport Detials Tests', () => { | ||
// const routes: Routes = []; | ||
// class MockLoaderService { } | ||
// class MockMd2Select { } | ||
// class MockActivatedRoute extends ActivatedRoute { | ||
// constructor() { | ||
// super(); | ||
// this.params = Observable.of({ id: "1" }); | ||
// } | ||
// }; | ||
|
||
// beforeEach(async(() => { | ||
// this.promise = TestBed.configureTestingModule({ | ||
// declarations: [RouterLinkStubDirective], //Declaration of mock routerLink used on page. | ||
// imports: [AppModule, RouterModule.forRoot(routes, { useHash: true }) //Set LocationStrategy for component. | ||
// ], | ||
// providers: [ | ||
// { provide: ActivatedRoute, useClass: MockActivatedRoute }, | ||
// { provide: LeaveReportService, useClass: MockLeaveReportService }, | ||
// { provide: StringConstant, useClass: StringConstant }, | ||
// { provide: LoaderService, useClass: MockLoaderService }, | ||
// { provide: Md2SelectChange, useClass: MockMd2Select }, | ||
// ] | ||
// }).compileComponents(); | ||
// })); | ||
|
||
// it('Shows details of leave report for an employee on initialization', fakeAsync(() => { | ||
// let fixture = TestBed.createComponent(LeaveReportDetailsComponent); //Create instance of component | ||
// let leaveReportDetailsComponent = fixture.componentInstance; | ||
// let result = leaveReportDetailsComponent.ngOnInit(); | ||
// tick(); | ||
// expect(leaveReportDetailsComponent.leaveReportDetail.length).toBe(1); | ||
// })); | ||
//}); | ||
declare let describe, it, beforeEach, expect; | ||
import { async, inject, TestBed, ComponentFixture } from '@angular/core/testing'; | ||
import { Provider } from "@angular/core"; | ||
import { Router, ActivatedRoute, RouterModule, Routes } from '@angular/router'; | ||
import { Observable } from 'rxjs/Observable'; | ||
import { RouterLinkStubDirective } from '../../shared/mock/mock.routerLink'; | ||
import { AppModule } from '../../../app/app.module'; | ||
import { LeaveReportService } from '../leaveReport.service'; | ||
import { MockLeaveReportService } from '../../shared/mock/mock.leaveReport.service'; | ||
import { StringConstant } from '../../shared/stringConstant'; | ||
import { LeaveReportDetailsComponent } from './leaveReport-Details.component'; | ||
import { LoaderService } from '../../shared/loader.service'; | ||
import { Injectable } from '@angular/core'; | ||
import { BehaviorSubject } from 'rxjs/BehaviorSubject'; | ||
import { LeaveReport } from '../../leaveReport/leaveReport-List/leaveReport-List.model'; | ||
import { LeaveReportDetail } from '../../leaveReport/leaveReport-Details/leaveReport-Details.model'; | ||
let promise: TestBed; | ||
let stringConstant = new StringConstant(); | ||
|
||
describe('LeaveReport Detials Tests', () => { | ||
const routes: Routes = []; | ||
class MockLoaderService { } | ||
class MockActivatedRoute extends ActivatedRoute { | ||
constructor() { | ||
super(); | ||
this.params = Observable.of({ id: "1" }); | ||
} | ||
}; | ||
|
||
beforeEach(async(() => { | ||
this.promise = TestBed.configureTestingModule({ | ||
declarations: [RouterLinkStubDirective], //Declaration of mock routerLink used on page. | ||
imports: [AppModule, RouterModule.forRoot(routes, { useHash: true }) //Set LocationStrategy for component. | ||
], | ||
providers: [ | ||
{ provide: ActivatedRoute, useClass: MockActivatedRoute }, | ||
{ provide: LeaveReportService, useClass: MockLeaveReportService }, | ||
{ provide: StringConstant, useClass: StringConstant }, | ||
{ provide: LoaderService, useClass: MockLoaderService } | ||
] | ||
}).compileComponents(); | ||
})); | ||
|
||
|
||
it('Shows list of leave reports Details', () => { | ||
let fixture = TestBed.createComponent(LeaveReportDetailsComponent); //Create instance of component | ||
let taskMailDetailsComponent = fixture.componentInstance; | ||
let result = taskMailDetailsComponent.ngOnInit(); | ||
expect(taskMailDetailsComponent.leaveReportDetail.length).toBe(0); | ||
}); | ||
|
||
|
||
it('Downloads report of leave reports on export to pdf', () => { | ||
let mockLeaveReportDetails = new Array<MockLeaveReportDetails>(); | ||
let mockLeaveReportDetail = new MockLeaveReportDetails(); | ||
mockLeaveReportDetail.EmployeeUserName = stringConstant.userEmail; | ||
mockLeaveReportDetail.EmployeeName = stringConstant.userName; | ||
mockLeaveReportDetail.LeaveFrom = stringConstant.leaveDate; | ||
mockLeaveReportDetails.push(mockLeaveReportDetail); | ||
|
||
let fixture = TestBed.createComponent(LeaveReportDetailsComponent); //Create instance of component | ||
let leaveReportDetailsComponent = fixture.componentInstance; | ||
leaveReportDetailsComponent.leaveReportDetail = mockLeaveReportDetails; | ||
leaveReportDetailsComponent.exportDataToPdf(); | ||
console.log(leaveReportDetailsComponent.leaveReportDetail.push()); | ||
expect(leaveReportDetailsComponent.leaveReportDetail.length).toBe(1); | ||
}); | ||
|
||
|
||
it('Shows details of leave report for an employee on initialization but there are no leave reports', () => { | ||
let mockLeaveReportDetails = new Array<MockLeaveReportDetails>(); | ||
let fixture = TestBed.createComponent(LeaveReportDetailsComponent); //Create instance of component | ||
let leaveReportDetailsComponent = fixture.componentInstance; | ||
let leaveReportService = fixture.debugElement.injector.get(LeaveReportService); | ||
spyOn(leaveReportService, stringConstant.getLeaveReportDetail).and.returnValue(new BehaviorSubject(mockLeaveReportDetails).asObservable()); | ||
let result = leaveReportDetailsComponent.getLeaveReportDetail(); | ||
expect(leaveReportDetailsComponent.leaveReportDetail.length).toBe(0); | ||
}); | ||
|
||
|
||
it('Shows details of leave report for an employee on initialization', () => { | ||
let mockLeaveReportDetails = new Array<MockLeaveReportDetails>(); | ||
let mockLeaveReportDetail = new MockLeaveReportDetails(); | ||
mockLeaveReportDetail.EmployeeUserName = stringConstant.userEmail; | ||
mockLeaveReportDetail.EmployeeName = stringConstant.userName; | ||
mockLeaveReportDetail.LeaveFrom = stringConstant.leaveDate; | ||
mockLeaveReportDetails.push(mockLeaveReportDetail); | ||
|
||
let fixture = TestBed.createComponent(LeaveReportDetailsComponent); //Create instance of component | ||
let leaveReportDetailsComponent = fixture.componentInstance; | ||
let leaveReportService = fixture.debugElement.injector.get(LeaveReportService); | ||
spyOn(leaveReportService, stringConstant.getLeaveReportDetail).and.returnValue(new BehaviorSubject(mockLeaveReportDetails).asObservable()); | ||
let result = leaveReportDetailsComponent.getLeaveReportDetail(); | ||
expect(leaveReportDetailsComponent.leaveReportDetail.length).toBe(1); | ||
|
||
}); | ||
|
||
|
||
}); | ||
class MockLeaveReport extends LeaveReport { | ||
constructor() { | ||
super(); | ||
} | ||
} | ||
|
||
class MockLeaveReportDetails extends LeaveReportDetail { | ||
constructor() { | ||
super(); | ||
} | ||
} |
Oops, something went wrong.