]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
4bb02ace02cd9bfd7160902d96130d1adb966a5c
[ceph.git] /
1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { ComponentFixture, TestBed } from '@angular/core/testing';
3 import { ReactiveFormsModule } from '@angular/forms';
4 import { RouterTestingModule } from '@angular/router/testing';
5
6 import { BsModalRef } from 'ngx-bootstrap/modal';
7
8 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
9 import { SharedModule } from '../../../shared/shared.module';
10 import { IscsiSettingComponent } from '../iscsi-setting/iscsi-setting.component';
11 import { IscsiTargetImageSettingsModalComponent } from './iscsi-target-image-settings-modal.component';
12
13 describe('IscsiTargetImageSettingsModalComponent', () => {
14   let component: IscsiTargetImageSettingsModalComponent;
15   let fixture: ComponentFixture<IscsiTargetImageSettingsModalComponent>;
16
17   configureTestBed({
18     declarations: [IscsiTargetImageSettingsModalComponent, IscsiSettingComponent],
19     imports: [SharedModule, ReactiveFormsModule, HttpClientTestingModule, RouterTestingModule],
20     providers: [BsModalRef, i18nProviders]
21   });
22
23   beforeEach(() => {
24     fixture = TestBed.createComponent(IscsiTargetImageSettingsModalComponent);
25     component = fixture.componentInstance;
26
27     component.imagesSettings = { 'rbd/disk_1': { backstore: 'backstore:1', 'backstore:1': {} } };
28     component.image = 'rbd/disk_1';
29     component.disk_default_controls = {
30       'backstore:1': {
31         foo: 1,
32         bar: 2
33       },
34       'backstore:2': {
35         baz: 3
36       }
37     };
38     component.disk_controls_limits = {
39       'backstore:1': {
40         foo: {
41           min: 1,
42           max: 512,
43           type: 'int'
44         },
45         bar: {
46           min: 1,
47           max: 512,
48           type: 'int'
49         }
50       },
51       'backstore:2': {
52         baz: {
53           min: 1,
54           max: 512,
55           type: 'int'
56         }
57       }
58     };
59     component.backstores = ['backstore:1', 'backstore:2'];
60
61     component.ngOnInit();
62     fixture.detectChanges();
63   });
64
65   it('should create', () => {
66     expect(component).toBeTruthy();
67   });
68
69   it('should fill the form', () => {
70     expect(component.settingsForm.value).toEqual({
71       backstore: 'backstore:1',
72       foo: null,
73       bar: null,
74       baz: null
75     });
76   });
77
78   it('should save changes to imagesSettings', () => {
79     component.settingsForm.controls['foo'].setValue(1234);
80     expect(component.imagesSettings).toEqual({
81       'rbd/disk_1': { backstore: 'backstore:1', 'backstore:1': {} }
82     });
83     component.save();
84     expect(component.imagesSettings).toEqual({
85       'rbd/disk_1': {
86         backstore: 'backstore:1',
87         'backstore:1': {
88           foo: 1234
89         }
90       }
91     });
92   });
93 });