]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/blob
30775d2156916ac3cca51204d3b496db83b831a6
[ceph.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 { NvmeofSubsystemsDetailsComponent } from '../nvmeof-subsystems-details/nvmeof-subsystems-details.component';
12 import { NvmeofNamespacesListComponent } from './nvmeof-namespaces-list.component';
13
14 const mockNamespaces = [
15   {
16     nsid: 1,
17     uuid: 'f4396245-186f-401a-b71c-945ccf0f0cc9',
18     bdev_name: 'bdev_f4396245-186f-401a-b71c-945ccf0f0cc9',
19     rbd_image_name: 'string',
20     rbd_pool_name: 'rbd',
21     load_balancing_group: 1,
22     rbd_image_size: 1024,
23     block_size: 512,
24     rw_ios_per_second: 0,
25     rw_mbytes_per_second: 0,
26     r_mbytes_per_second: 0,
27     w_mbytes_per_second: 0
28   }
29 ];
30
31 class MockNvmeOfService {
32   listNamespaces() {
33     return of(mockNamespaces);
34   }
35 }
36
37 class MockAuthStorageService {
38   getPermissions() {
39     return { nvmeof: {} };
40   }
41 }
42
43 class MockModalService {}
44
45 class MockTaskWrapperService {}
46
47 describe('NvmeofNamespacesListComponent', () => {
48   let component: NvmeofNamespacesListComponent;
49   let fixture: ComponentFixture<NvmeofNamespacesListComponent>;
50
51   beforeEach(async () => {
52     await TestBed.configureTestingModule({
53       declarations: [NvmeofNamespacesListComponent, NvmeofSubsystemsDetailsComponent],
54       imports: [HttpClientModule, RouterTestingModule, SharedModule],
55       providers: [
56         { provide: NvmeofService, useClass: MockNvmeOfService },
57         { provide: AuthStorageService, useClass: MockAuthStorageService },
58         { provide: ModalService, useClass: MockModalService },
59         { provide: TaskWrapperService, useClass: MockTaskWrapperService }
60       ]
61     }).compileComponents();
62
63     fixture = TestBed.createComponent(NvmeofNamespacesListComponent);
64     component = fixture.componentInstance;
65     component.ngOnInit();
66     component.subsystemNQN = 'nqn.2001-07.com.ceph:1721040751436';
67     fixture.detectChanges();
68   });
69
70   it('should create', () => {
71     expect(component).toBeTruthy();
72   });
73
74   it('should retrieve namespaces', fakeAsync(() => {
75     component.listNamespaces();
76     tick();
77     expect(component.namespaces).toEqual(mockNamespaces);
78   }));
79 });