]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/host.service.spec.ts
import ceph 16.2.7
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / api / host.service.spec.ts
1 import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
2 import { fakeAsync, TestBed, tick } from '@angular/core/testing';
3
4 import { configureTestBed } from '~/testing/unit-test-helper';
5 import { HostService } from './host.service';
6
7 describe('HostService', () => {
8 let service: HostService;
9 let httpTesting: HttpTestingController;
10
11 configureTestBed({
12 providers: [HostService],
13 imports: [HttpClientTestingModule]
14 });
15
16 beforeEach(() => {
17 service = TestBed.inject(HostService);
18 httpTesting = TestBed.inject(HttpTestingController);
19 });
20
21 afterEach(() => {
22 httpTesting.verify();
23 });
24
25 it('should be created', () => {
26 expect(service).toBeTruthy();
27 });
28
29 it('should call list', fakeAsync(() => {
30 let result;
31 service.list('true').subscribe((resp) => (result = resp));
32 const req = httpTesting.expectOne('api/host?facts=true');
33 expect(req.request.method).toBe('GET');
34 req.flush(['foo', 'bar']);
35 tick();
36 expect(result).toEqual(['foo', 'bar']);
37 }));
38
39 it('should make a GET request on the devices endpoint when requesting devices', () => {
40 const hostname = 'hostname';
41 service.getDevices(hostname).subscribe();
42 const req = httpTesting.expectOne(`api/host/${hostname}/devices`);
43 expect(req.request.method).toBe('GET');
44 });
45
46 it('should update host', fakeAsync(() => {
47 service.update('mon0', true, ['foo', 'bar']).subscribe();
48 const req = httpTesting.expectOne('api/host/mon0');
49 expect(req.request.method).toBe('PUT');
50 expect(req.request.body).toEqual({
51 force: false,
52 labels: ['foo', 'bar'],
53 maintenance: false,
54 update_labels: true
55 });
56 }));
57
58 it('should call getInventory', () => {
59 service.getInventory('host-0').subscribe();
60 let req = httpTesting.expectOne('api/host/host-0/inventory');
61 expect(req.request.method).toBe('GET');
62
63 service.getInventory('host-0', true).subscribe();
64 req = httpTesting.expectOne('api/host/host-0/inventory?refresh=true');
65 expect(req.request.method).toBe('GET');
66 });
67
68 it('should call inventoryList', () => {
69 service.inventoryList().subscribe();
70 let req = httpTesting.expectOne('ui-api/host/inventory');
71 expect(req.request.method).toBe('GET');
72
73 service.inventoryList(true).subscribe();
74 req = httpTesting.expectOne('ui-api/host/inventory?refresh=true');
75 expect(req.request.method).toBe('GET');
76 });
77 });