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=b5db979ef3d450c9ca2e7a273c8395166f45738f;hb=HEAD;hp=859e1f8f35e6aebb17f60961417dd3802b0157ba;hpb=fb9a5699b247ad1518c5714224396205485a3c4c;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 859e1f8..b5db979 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 @@ -27,11 +27,12 @@ import { of } from "rxjs"; import { MockComponent } from "ng-mocks"; import { PolicyInstanceComponent } from "../policy-instance/policy-instance.component"; import { By } from "@angular/platform-browser"; +import { Component, SimpleChange, ViewChild } from '@angular/core'; describe("PolicyTypeComponent", () => { - let component: PolicyTypeComponent; + let component: TestPolicyTypeHostComponent; let policyServiceSpy: jasmine.SpyObj; - let fixture: ComponentFixture; + let fixture: ComponentFixture; beforeEach(async(() => { policyServiceSpy = jasmine.createSpyObj("PolicyService", ["getPolicyType"]); @@ -45,13 +46,14 @@ describe("PolicyTypeComponent", () => { declarations: [ PolicyTypeComponent, MockComponent(PolicyInstanceComponent), + TestPolicyTypeHostComponent, ], providers: [{ provide: PolicyService, useValue: policyServiceSpy }], }).compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(PolicyTypeComponent); + fixture = TestBed.createComponent(TestPolicyTypeHostComponent); component = fixture.componentInstance; fixture.detectChanges(); }); @@ -63,21 +65,21 @@ describe("PolicyTypeComponent", () => { 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"); + expect(component.policyTypeComponent.policyType).toEqual("< No Type >"); + expect(component.policyTypeComponent.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(); + component.policyTypeComponent.policyTypeId = "type1"; + component.policyTypeComponent.loadTypeInfo(); expect(policyServiceSpy.getPolicyType).toHaveBeenCalledWith("type1"); - expect(component.policyType).toEqual("type1"); - expect(component.policyDescription).toEqual("Type 1 policy type"); + expect(component.policyTypeComponent.policyType).toEqual("type1"); + expect(component.policyTypeComponent.policyDescription).toEqual("Type 1 policy type"); const ele = fixture.debugElement.nativeElement.querySelector("nrcp-policy-instance"); expect(ele).toBeFalsy(); @@ -103,4 +105,34 @@ describe("PolicyTypeComponent", () => { } as PolicyTypeSchema; expect(policyInstanceComp.policyTypeSchema).toEqual(expectedPolicyType); }); + + it("should call ngOnChanges when minimiseTrigger is changed", async() => { + spyOn(component.policyTypeComponent, "ngOnChanges"); + component.minimiseTrigger = !component.minimiseTrigger; + fixture.detectChanges(); + expect(component.policyTypeComponent.ngOnChanges).toHaveBeenCalled(); + }); + + it("should close all tables when the types are refreshed", async() => { + const ele = fixture.debugElement.nativeElement.querySelector("#visible"); + ele.click(); + fixture.detectChanges(); + component.policyTypeComponent.ngOnChanges({ + minimiseTrigger: new SimpleChange(null, null, component.policyTypeComponent.minimiseTrigger) + }); + fixture.detectChanges(); + expect(ele.innerText).toEqual("expand_more"); + }); + + @Component({ + selector: `policy-type-host-component`, + template: ``, + }) + class TestPolicyTypeHostComponent { + @ViewChild(PolicyTypeComponent) + policyTypeComponent: PolicyTypeComponent; + minimiseTrigger: boolean = false; + } });