]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/blob
1efd28dd11401cd1939b3cfd78df5a77fd690424
[ceph-ci.git] /
1 import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing';
2 import { HttpClientModule } from '@angular/common/http';
3 import { of } from 'rxjs';
4 import { RouterTestingModule } from '@angular/router/testing';
5 import { SharedModule } from '~/app/shared/shared.module';
6
7 import { NvmeofService } from '../../../shared/api/nvmeof.service';
8 import { AuthStorageService } from '~/app/shared/services/auth-storage.service';
9 import { ModalService } from '~/app/shared/services/modal.service';
10 import { TaskWrapperService } from '~/app/shared/services/task-wrapper.service';
11 import { NvmeofSubsystemsComponent } from './nvmeof-subsystems.component';
12 import { NvmeofTabsComponent } from '../nvmeof-tabs/nvmeof-tabs.component';
13 import { NvmeofSubsystemsDetailsComponent } from '../nvmeof-subsystems-details/nvmeof-subsystems-details.component';
14
15 const mockSubsystems = [
16   {
17     nqn: 'nqn.2001-07.com.ceph:1720603703820',
18     enable_ha: true,
19     serial_number: 'Ceph30487186726692',
20     model_number: 'Ceph bdev Controller',
21     min_cntlid: 1,
22     max_cntlid: 2040,
23     namespace_count: 0,
24     subtype: 'NVMe',
25     max_namespaces: 256
26   }
27 ];
28
29 class MockNvmeOfService {
30   listSubsystems() {
31     return of(mockSubsystems);
32   }
33 }
34
35 class MockAuthStorageService {
36   getPermissions() {
37     return { nvmeof: {} };
38   }
39 }
40
41 class MockModalService {}
42
43 class MockTaskWrapperService {}
44
45 describe('NvmeofSubsystemsComponent', () => {
46   let component: NvmeofSubsystemsComponent;
47   let fixture: ComponentFixture<NvmeofSubsystemsComponent>;
48
49   beforeEach(async () => {
50     await TestBed.configureTestingModule({
51       declarations: [
52         NvmeofSubsystemsComponent,
53         NvmeofTabsComponent,
54         NvmeofSubsystemsDetailsComponent
55       ],
56       imports: [HttpClientModule, RouterTestingModule, SharedModule],
57       providers: [
58         { provide: NvmeofService, useClass: MockNvmeOfService },
59         { provide: AuthStorageService, useClass: MockAuthStorageService },
60         { provide: ModalService, useClass: MockModalService },
61         { provide: TaskWrapperService, useClass: MockTaskWrapperService }
62       ]
63     }).compileComponents();
64
65     fixture = TestBed.createComponent(NvmeofSubsystemsComponent);
66     component = fixture.componentInstance;
67     component.ngOnInit();
68     fixture.detectChanges();
69   });
70
71   it('should create', () => {
72     expect(component).toBeTruthy();
73   });
74
75   it('should retrieve subsystems', fakeAsync(() => {
76     component.getSubsystems();
77     tick();
78     expect(component.subsystems).toEqual(mockSubsystems);
79   }));
80 });