Fixing SO-Monitoring UI tests
[so.git] / so-monitoring / so-monitoring-ui / src / main / frontend / src / app / home / home.component.spec.ts
index 9da8ba9..1e1485e 100644 (file)
@@ -23,6 +23,23 @@ SPDX-License-Identifier: Apache-2.0
 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
@@ -30,18 +47,32 @@ describe('HomeComponent', () => {
 \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