X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fpolicy%2Fpolicy-type%2Fpolicy-type.component.spec.ts;h=28e99b07d765291fee53dabf3fcd104fec842fa9;hb=709353407dd0d20f5b0ec8b9db024b79e874eaa8;hp=d02f1b21e1766324db83e64eb5e39344b09bc400;hpb=8145531a9b5d15edcaa49249bef0c0c95723acbb;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-frontend/src/app/policy/policy-type/policy-type.component.spec.ts b/webapp-frontend/src/app/policy/policy-type/policy-type.component.spec.ts index d02f1b2..28e99b0 100644 --- a/webapp-frontend/src/app/policy/policy-type/policy-type.component.spec.ts +++ b/webapp-frontend/src/app/policy/policy-type/policy-type.component.spec.ts @@ -21,9 +21,12 @@ import { async, ComponentFixture, TestBed } from "@angular/core/testing"; import { PolicyTypeComponent } from "./policy-type.component"; -import { PolicyType } from "@interfaces/policy.types"; +import { PolicyType, PolicyTypeSchema } from "@interfaces/policy.types"; import { PolicyService } from "@services/policy/policy.service"; import { of } from "rxjs"; +import { MockComponent } from "ng-mocks"; +import { PolicyInstanceComponent } from "../policy-instance/policy-instance.component"; +import { By } from "@angular/platform-browser"; describe("PolicyTypeComponent", () => { let component: PolicyTypeComponent; @@ -33,13 +36,16 @@ describe("PolicyTypeComponent", () => { beforeEach(async(() => { policyServiceSpy = jasmine.createSpyObj("PolicyService", ["getPolicyType"]); const policyTypeSchema = JSON.parse( - '{"schemaObject": {"description": "Type 1 policy type"}}' + '{"title": "1", "description": "Type 1 policy type"}' ); const policyType = { policy_schema: policyTypeSchema } as PolicyType; policyServiceSpy.getPolicyType.and.returnValue(of(policyType)); TestBed.configureTestingModule({ - declarations: [PolicyTypeComponent], + declarations: [ + PolicyTypeComponent, + MockComponent(PolicyInstanceComponent), + ], providers: [{ provide: PolicyService, useValue: policyServiceSpy }], }).compileComponents(); })); @@ -53,4 +59,49 @@ describe("PolicyTypeComponent", () => { it("should create", () => { expect(component).toBeTruthy(); }); + + it("should not call service when no type, display correct type info and no PolicyInstanceComponent added", () => { + expect(policyServiceSpy.getPolicyType).not.toHaveBeenCalled(); + + expect(component.policyType).toEqual("< No Type >"); + expect(component.policyDescription).toEqual("Type with no schema"); + + const ele = fixture.debugElement.nativeElement.querySelector("nrcp-policy-instance"); + expect(ele).toBeFalsy(); +}); + + it("should call service when type, display correct type info and no PolicyInstanceComponent added", () => { + component.policyTypeId = "type1"; + component.loadTypeInfo(); + + expect(policyServiceSpy.getPolicyType).toHaveBeenCalledWith("type1"); + + expect(component.policyType).toEqual("type1"); + expect(component.policyDescription).toEqual("Type 1 policy type"); + + const ele = fixture.debugElement.nativeElement.querySelector("nrcp-policy-instance"); + expect(ele).toBeFalsy(); + }); + + it("should add PolicyInstanceComponent with correct data when toggle visible to visible", async () => { + const ele = fixture.debugElement.nativeElement.querySelector("#visible"); + expect(ele.innerText).toEqual("expand_more"); + + ele.click(); + fixture.detectChanges(); + + expect(ele.innerText).toEqual("expand_less"); + + const policyInstanceComp: PolicyInstanceComponent = fixture.debugElement.query( + By.directive(PolicyInstanceComponent) + ).componentInstance; + expect(policyInstanceComp).toBeTruthy(); + const expectedPolicyType = { + id: undefined, + name: undefined, + schemaObject: JSON.parse("{}") + } as PolicyTypeSchema; + expect(policyInstanceComp.policyTypeSchema).toEqual(expectedPolicyType); + expect(policyInstanceComp.expanded).toBeTruthy(); + }); });