]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/blob
18cbb7609bd6b61c2d0f9b72c4d0b5ecb1d7985f
[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 { ToastrModule } from 'ngx-toastr';
7
8 import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
9 import { LoadingPanelComponent } from '../../../../shared/components/loading-panel/loading-panel.component';
10 import { SharedModule } from '../../../../shared/shared.module';
11 import { MgrModuleFormComponent } from './mgr-module-form.component';
12
13 describe('MgrModuleFormComponent', () => {
14   let component: MgrModuleFormComponent;
15   let fixture: ComponentFixture<MgrModuleFormComponent>;
16
17   configureTestBed(
18     {
19       declarations: [MgrModuleFormComponent],
20       imports: [
21         HttpClientTestingModule,
22         ReactiveFormsModule,
23         RouterTestingModule,
24         SharedModule,
25         ToastrModule.forRoot()
26       ],
27       providers: i18nProviders
28     },
29     [LoadingPanelComponent]
30   );
31
32   beforeEach(() => {
33     fixture = TestBed.createComponent(MgrModuleFormComponent);
34     component = fixture.componentInstance;
35     fixture.detectChanges();
36   });
37
38   it('should create', () => {
39     expect(component).toBeTruthy();
40   });
41
42   describe('getValidators', () => {
43     it('should return ip validator for type addr', () => {
44       const result = component.getValidators({ type: 'addr' });
45       expect(result.length).toBe(1);
46     });
47
48     it('should return number, required validators for types uint, int, size, secs', () => {
49       const types = ['uint', 'int', 'size', 'secs'];
50       types.forEach((type) => {
51         const result = component.getValidators({ type: type });
52         expect(result.length).toBe(2);
53       });
54     });
55
56     it('should return number, required, min validators for types uint, int, size, secs', () => {
57       const types = ['uint', 'int', 'size', 'secs'];
58       types.forEach((type) => {
59         const result = component.getValidators({ type: type, min: 2 });
60         expect(result.length).toBe(3);
61       });
62     });
63
64     it('should return number, required, min, max validators for types uint, int, size, secs', () => {
65       const types = ['uint', 'int', 'size', 'secs'];
66       types.forEach((type) => {
67         const result = component.getValidators({ type: type, min: 2, max: 5 });
68         expect(result.length).toBe(4);
69       });
70     });
71
72     it('should return required, decimalNumber validators for type float', () => {
73       const result = component.getValidators({ type: 'float' });
74       expect(result.length).toBe(2);
75     });
76
77     it('should return uuid validator for type uuid', () => {
78       const result = component.getValidators({ type: 'uuid' });
79       expect(result.length).toBe(1);
80     });
81
82     it('should return no validator for type str', () => {
83       const result = component.getValidators({ type: 'str' });
84       expect(result.length).toBe(0);
85     });
86
87     it('should return min validator for type str', () => {
88       const result = component.getValidators({ type: 'str', min: 1 });
89       expect(result.length).toBe(1);
90     });
91
92     it('should return min, max validators for type str', () => {
93       const result = component.getValidators({ type: 'str', min: 1, max: 127 });
94       expect(result.length).toBe(2);
95     });
96   });
97 });