import { async, ComponentFixture, TestBed } from '@angular/core/testing';\r
\r
import { HomeComponent } from './home.component';\r
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r
+import { MatTableModule } from '@angular/material';\r
+import { FormsModule } from '@angular/forms';\r
+import { MatDatepickerModule } from '@angular/material/datepicker';\r
+import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';\r
+import { HttpClientModule } from '@angular/common/http';\r
+import { HttpClient } from '@angular/common/http';\r
+import { inject } from '@angular/core/testing';\r
+import { RouterModule } from '@angular/router';\r
+import { APP_BASE_HREF } from '@angular/common';\r
+import { ToastrNotificationService } from '../toastr-notification-service.service';\r
+import { environment } from '../../environments/environment.prod';\r
+\r
+class StubbedToastrNotificationService extends ToastrNotificationService {\r
+ toastrSettings() {\r
+ }\r
+}\r
\r
describe('HomeComponent', () => {\r
let component: HomeComponent;\r
\r
beforeEach(async(() => {\r
TestBed.configureTestingModule({\r
- declarations: [HomeComponent]\r
+ providers: [HomeComponent, HttpClient, HttpTestingController,\r
+ { provide: APP_BASE_HREF, useValue: '/' },\r
+ { provide: ToastrNotificationService, useClass: StubbedToastrNotificationService }],\r
+ imports: [MatTableModule, FormsModule, MatDatepickerModule, HttpClientModule, RouterModule.forRoot([])],\r
+ declarations: [HomeComponent],\r
+ schemas: [\r
+ CUSTOM_ELEMENTS_SCHEMA\r
+ ]\r
})\r
.compileComponents();\r
}));\r
\r
- beforeEach(() => {\r
- fixture = TestBed.createComponent(HomeComponent);\r
- component = fixture.componentInstance;\r
- fixture.detectChanges();\r
- });\r
+ // Ensure creation of HomeComponent component\r
+ it('component should be created', inject([HttpTestingController, HomeComponent],\r
+ (httpClient: HttpTestingController, service: HomeComponent) => {\r
+ expect(service).toBeTruthy();\r
+ }));\r
\r
- it('should create', () => {\r
- expect(component).toBeTruthy();\r
- });\r
+ // Ensure all statistic variables are initialised to zero\r
+ it('ensure statistic variables are defaulted at zero', async(inject([HttpTestingController, HomeComponent],\r
+ (httpClient: HttpTestingController, service: HomeComponent) => {\r
+ expect(service.totalVal === 0 && service.completeVal === 0 &&\r
+ service.inProgressVal === 0 && service.failedVal === 0 &&\r
+ service.pendingVal === 0 && service.unlockedVal === 0 &&\r
+ service.percentageComplete === 0 && service.percentageFailed === 0 &&\r
+ service.percentageInProg === 0 && service.percentagePending === 0 &&\r
+ service.percentageUnlocked === 0).toBeTruthy();\r
+ })));\r
});\r