Add test coverage of PolicyControlComponent 23/5823/3
authorelinuxhenrik <henrik.b.andersson@est.tech>
Tue, 30 Mar 2021 12:14:15 +0000 (14:14 +0200)
committerelinuxhenrik <henrik.b.andersson@est.tech>
Tue, 30 Mar 2021 12:38:10 +0000 (14:38 +0200)
Change-Id: If18ad9d26d4872c953c0e410dd1f576a33a5c306
Issue-ID: NONRTRIC-390
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
webapp-frontend/src/app/policy/policy-control.component.spec.ts

index 92b3bbc..05f95db 100644 (file)
  */
 import { async, ComponentFixture, TestBed } from "@angular/core/testing";
 import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
+import { By } from "@angular/platform-browser";
 import { MatIconModule } from "@angular/material/icon";
 import { MatTableModule } from "@angular/material/table";
 import { CUSTOM_ELEMENTS_SCHEMA } from "@angular/core";
 import { of } from "rxjs";
 
 import { PolicyControlComponent } from "./policy-control.component";
-import { PolicyTypeSchema } from "@interfaces/policy.types";
+import { PolicyTypes } from "@interfaces/policy.types";
 import { PolicyService } from "@services/policy/policy.service";
+import { MockComponent } from "ng-mocks";
+import { PolicyTypeComponent } from "./policy-type/policy-type.component";
 
 describe("PolicyControlComponent", () => {
   let component: PolicyControlComponent;
@@ -36,15 +39,16 @@ describe("PolicyControlComponent", () => {
     const policyServiceSpy = jasmine.createSpyObj("PolicyService", [
       "getPolicyTypes",
     ]);
-    var policyTypeSchema = {} as PolicyTypeSchema;
-    policyTypeSchema.name = "";
-    policyTypeSchema.schemaObject = "";
-    policyServiceSpy.getPolicyTypes.and.returnValue(of(["type1"]));
+    const policyTypes = { policytype_ids: ["type1", "type2"] } as PolicyTypes;
+    policyServiceSpy.getPolicyTypes.and.returnValue(of(policyTypes));
 
     TestBed.configureTestingModule({
       imports: [MatIconModule, MatTableModule, BrowserAnimationsModule],
       schemas: [CUSTOM_ELEMENTS_SCHEMA],
-      declarations: [PolicyControlComponent],
+      declarations: [
+        PolicyControlComponent,
+        MockComponent(PolicyTypeComponent),
+      ],
       providers: [{ provide: PolicyService, useValue: policyServiceSpy }],
     }).compileComponents();
   }));
@@ -58,4 +62,14 @@ describe("PolicyControlComponent", () => {
   it("should create", () => {
     expect(component).toBeTruthy();
   });
+
+  it("should contain two PolicyType components instantiated with the correct type", () => {
+    const typeComponents: PolicyTypeComponent[] = fixture.debugElement
+      .queryAll(By.directive(PolicyTypeComponent))
+      .map((component) => component.componentInstance);
+
+    expect(typeComponents.length).toEqual(2);
+    expect(typeComponents[0].policyTypeId).toEqual("type1");
+    expect(typeComponents[1].policyTypeId).toEqual("type2");
+  });
 });