+// -
+// ========================LICENSE_START=================================
+// O-RAN-SC
+// %%
+// Copyright (C) 2021: Nordix Foundation
+// %%
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ========================LICENSE_END===================================
+// /
+//
+
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
-import { Component, ViewChild } from '@angular/core';
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { Component, ViewChild, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormBuilder, FormGroup } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatButtonHarness } from '@angular/material/button/testing';
-import { MatInput, MatInputModule } from '@angular/material/input';
+import { MatFormFieldModule } from '@angular/material/form-field';
+import { MatInputModule } from '@angular/material/input';
import { MatInputHarness } from '@angular/material/input/testing';
+import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NoTypePolicyEditorComponent } from './no-type-policy-editor.component';
-let formGroup: FormGroup = new FormGroup({});
-
describe('NoTypePolicyEditorComponent', () => {
+ let formGroup: FormGroup = new FormGroup({});
+
let component: TestNoTypePolicyEditorComponentHostComponent;
let fixture: ComponentFixture<TestNoTypePolicyEditorComponentHostComponent>;
let loader: HarnessLoader;
- beforeEach(async(() => {
+ beforeEach(async () => {
TestBed.configureTestingModule({
imports: [
+ BrowserModule,
BrowserAnimationsModule,
MatButtonModule,
+ MatFormFieldModule,
MatInputModule
],
+ schemas: [
+ CUSTOM_ELEMENTS_SCHEMA
+ ],
declarations: [
NoTypePolicyEditorComponent,
TestNoTypePolicyEditorComponentHostComponent
component = fixture.componentInstance;
fixture.detectChanges();
loader = TestbedHarnessEnvironment.loader(fixture);
- }));
+ });
it('should create', () => {
expect(component).toBeTruthy();
expect(await formatButton.isDisabled()).toBeFalsy();
});
- it('Format button should be disabled wen json not valid', async () => {
- let textArea: MatInputHarness = await loader.getHarness(MatInputHarness.with({ selector: '#policyJsonTextArea' }));
- await textArea.setValue('{');
+ it('Format button should be disabled when json not valid', async () => {
+ const ele = formGroup.get('policyJsonTextArea');
+ ele.setValue('{');
let formatButton: MatButtonHarness = await loader.getHarness(MatButtonHarness.with({ selector: '#formatButton' }));
- // expect(await formatButton.isDisabled()).toBeTruthy();
+ expect(await formatButton.isDisabled()).toBeTruthy();
});
-});
-@Component({
- selector: `no-type-policy-editor-host-component`,
- template: `<nrcp-no-type-policy-editor [policyJson]="this.policyJson" [instanceForm]="instanceForm"></nrcp-no-type-policy-editor>`
-})
-export class TestNoTypePolicyEditorComponentHostComponent {
- @ViewChild(NoTypePolicyEditorComponent)
- private noTypePolicyEditorComponentHostComponent: NoTypePolicyEditorComponent;
- instanceForm: FormGroup = formGroup;
- policyJson: string = '{"A":"A"}';
-}
+ it('should format unformatted json', async () => {
+ const textArea = formGroup.get('policyJsonTextArea');
+ textArea.setValue('{"A":"A"}');
+ component.noTypePolicyEditorComponent.formatJsonInput();
+ expect(component.noTypePolicyEditorComponent.policyJson).toEqual('{\n "A": "A"\n}');
+ });
+
+ @Component({
+ selector: `no-type-policy-editor-host-component`,
+ template: `<nrcp-no-type-policy-editor [policyJson]="this.policyJson" [instanceForm]="instanceForm"></nrcp-no-type-policy-editor>`
+ })
+ class TestNoTypePolicyEditorComponentHostComponent {
+ @ViewChild(NoTypePolicyEditorComponent)
+ noTypePolicyEditorComponent: NoTypePolicyEditorComponent;
+ instanceForm: FormGroup = formGroup;
+ policyJson: string = '{"A":"A"}';
+ }
+});