+
+ 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);
+ });