+
+ it("should have JSON form visible and JSON and JSON Schema not visible", () => {
+ let propertiesHeading = fixture.debugElement.nativeElement.querySelector(
+ "#propertiesHeading"
+ );
+ expect(propertiesHeading).toBeTruthy();
+ expect(propertiesHeading.innerText).toContain("Properties");
+ let propertiesIcon = fixture.debugElement.nativeElement.querySelector(
+ "#propertiesIcon"
+ );
+ expect(propertiesIcon).toBeTruthy();
+ expect(propertiesIcon.innerText).toEqual("expand_less");
+ let jsonForm = fixture.debugElement.nativeElement.querySelector(
+ "json-schema-form"
+ );
+ expect(jsonForm).toBeTruthy();
+
+ let jsonHeading = fixture.debugElement.nativeElement.querySelector(
+ "#jsonHeading"
+ );
+ expect(jsonHeading).toBeTruthy();
+ expect(jsonHeading.innerText).toContain("JSON");
+ let jsonIcon = fixture.debugElement.nativeElement.querySelector(
+ "#jsonIcon"
+ );
+ expect(jsonIcon).toBeTruthy();
+ expect(jsonIcon.innerText).toEqual("expand_more");
+ let jsonDiv = fixture.debugElement.nativeElement.querySelector("#jsonDiv");
+ expect(jsonDiv).toBeFalsy();
+
+ let schemaHeading = fixture.debugElement.nativeElement.querySelector(
+ "#schemaHeading"
+ );
+ expect(schemaHeading).toBeTruthy();
+ expect(schemaHeading.innerText).toContain("JSON Schema");
+ let schemaIcon = fixture.debugElement.nativeElement.querySelector(
+ "#schemaIcon"
+ );
+ expect(schemaIcon).toBeTruthy();
+ expect(schemaIcon.innerText).toEqual("expand_more");
+ let schemaDiv = fixture.debugElement.nativeElement.querySelector(
+ "#schemaDiv"
+ );
+ expect(schemaDiv).toBeFalsy();
+ });
+
+ it("should hide JSON form", () => {
+ let propertiesHeading = fixture.debugElement.nativeElement.querySelector(
+ "#propertiesHeading"
+ );
+ expect(propertiesHeading).toBeTruthy();
+ propertiesHeading.click();
+ fixture.detectChanges();
+
+ let propertiesIcon = fixture.debugElement.nativeElement.querySelector(
+ "#propertiesIcon"
+ );
+ expect(propertiesIcon).toBeTruthy();
+ expect(propertiesIcon.innerText).toEqual("expand_more");
+ let propertiesDiv = fixture.debugElement.nativeElement.querySelector(
+ "propertiesDiv"
+ );
+ expect(propertiesDiv).toBeFalsy();
+ });
+
+ it("should show JSON with text for dark mode", () => {
+ let jsonHeading = fixture.debugElement.nativeElement.querySelector(
+ "#jsonHeading"
+ );
+ expect(jsonHeading).toBeTruthy();
+ jsonHeading.click();
+ fixture.detectChanges();
+
+ let jsonIcon = fixture.debugElement.nativeElement.querySelector(
+ "#jsonIcon"
+ );
+ expect(jsonIcon).toBeTruthy();
+ expect(jsonIcon.innerText).toEqual("expand_less");
+ let jsonDiv = fixture.debugElement.nativeElement.querySelector("#jsonDiv");
+ expect(jsonDiv).toBeTruthy();
+ let jsonText = jsonDiv.querySelector("pre");
+ expect(jsonText.classList).toContain("text__dark");
+ });
+
+ it("should show JSON Schema with text for dark mode", () => {
+ let schemaHeading = fixture.debugElement.nativeElement.querySelector(
+ "#schemaHeading"
+ );
+ expect(schemaHeading).toBeTruthy();
+ schemaHeading.click();
+ fixture.detectChanges();
+
+ let schemaIcon = fixture.debugElement.nativeElement.querySelector(
+ "#schemaIcon"
+ );
+ expect(schemaIcon).toBeTruthy();
+ expect(schemaIcon.innerText).toEqual("expand_less");
+ let schemaDiv = fixture.debugElement.nativeElement.querySelector(
+ "#schemaDiv"
+ );
+ expect(schemaDiv).toBeTruthy();
+ let jsonSchemaText = schemaDiv.querySelector("pre");
+ expect(jsonSchemaText.classList).toContain("text__dark");
+ });
+
+ @Component({
+ selector: `typed-policy-editor-host-component`,
+ template: `<nrcp-typed-policy-editor
+ [jsonObject]="policyJson"
+ [jsonSchemaObject]="jsonSchemaObject"
+ [darkMode]="true"
+ ></nrcp-typed-policy-editor>`,
+ })
+ class TestTypedPolicyEditorComponentHostComponent {
+ policyJson: string = '{"A":"A"}';
+ jsonSchemaObject: string =
+ 'policy_schema": { "description": "Type 1 policy type", "title": "1", "type": "object", "properties": { "A": "string" }, "required": [ "A" ]}';
+ }