7e2c31279295549c3a4aa20880ebfb1779db89c2
[sdc.git] / catalog-ui / src / app / ng2 / pages / type-workspace / type-workspace-properties / add-property / add-property.component.spec.ts
1 /*
2  * -
3  *  ============LICENSE_START=======================================================
4  *  Copyright (C) 2022 Nordix Foundation.
5  *  ================================================================================
6  *  Licensed under the Apache License, Version 2.0 (the "License");
7  *  you may not use this file except in compliance with the License.
8  *  You may obtain a copy of the License at
9  *
10  *       http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License.
17  *
18  *  SPDX-License-Identifier: Apache-2.0
19  *  ============LICENSE_END=========================================================
20  */
21
22 import {async, ComponentFixture, TestBed} from '@angular/core/testing';
23
24 import {AddPropertyComponent} from './add-property.component';
25 import {FormsModule, ReactiveFormsModule} from "@angular/forms";
26 import {TranslateModule} from "../../../../shared/translator/translate.module";
27 import {UiElementsModule} from "../../../../components/ui/ui-elements.module";
28 import {Component, Input} from "@angular/core";
29 import {DataTypeModel} from "../../../../../models/data-types";
30 import {SchemaPropertyGroupModel} from "../../../../../models/schema-property";
31 import {DataTypeService} from "../../../../services/data-type.service";
32 import {TranslateService} from "../../../../shared/translator/translate.service";
33
34 @Component({selector: 'app-input-list-item', template: ''})
35 class InputListItemStubComponent {
36     @Input() valueObjRef: any;
37     @Input() name: string;
38     @Input() dataTypeMap: Map<string, DataTypeModel>;
39     @Input() type: DataTypeModel;
40     @Input() schema: SchemaPropertyGroupModel;
41     @Input() nestingLevel: number;
42     @Input() isExpanded: boolean = false;
43     @Input() isListChild: boolean = false;
44     @Input() isMapChild: boolean = false;
45     @Input() listIndex: number;
46     @Input() isViewOnly: boolean;
47     @Input() allowDeletion: boolean = false;
48 }
49
50 describe('AddPropertyComponent', () => {
51     let dataTypeServiceMock: Partial<DataTypeService> = {
52         findAllDataTypesByModel: jest.fn(args => {
53             return Promise.resolve(new Map());
54         })
55     };
56     let translateServiceMock: Partial<TranslateService> = {
57         translate: jest.fn((str: string) => {})
58     };
59     let component: AddPropertyComponent;
60     let fixture: ComponentFixture<AddPropertyComponent>;
61
62     beforeEach(async(() => {
63         TestBed.configureTestingModule({
64             declarations: [AddPropertyComponent, InputListItemStubComponent],
65             imports: [
66                 FormsModule,
67                 ReactiveFormsModule,
68                 TranslateModule,
69                 UiElementsModule
70             ],
71             providers: [
72                 {provide: DataTypeService, useValue: dataTypeServiceMock},
73                 {provide: TranslateService, useValue: translateServiceMock}
74             ]
75         })
76         .compileComponents();
77     }));
78
79     beforeEach(() => {
80         fixture = TestBed.createComponent(AddPropertyComponent);
81         component = fixture.componentInstance;
82         fixture.detectChanges();
83     });
84
85     it('should create', () => {
86         expect(component).toBeTruthy();
87     });
88 });