]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
5b1c8680a3e0a9bef63b027b1ddbf37e7cdd7c6a
[ceph.git] /
1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { ComponentFixture, TestBed } from '@angular/core/testing';
3
4 import { PopoverModule } from 'ngx-bootstrap';
5
6 import { ExecutingTask } from '../../../shared/models/executing-task';
7 import { FinishedTask } from '../../../shared/models/finished-task';
8 import { SharedModule } from '../../../shared/shared.module';
9 import { configureTestBed } from '../../../shared/unit-test-helper';
10 import { TaskManagerComponent } from './task-manager.component';
11
12 describe('TaskManagerComponent', () => {
13   let component: TaskManagerComponent;
14   let fixture: ComponentFixture<TaskManagerComponent>;
15   const tasks = {
16     executing: [],
17     finished: []
18   };
19
20   configureTestBed({
21     imports: [SharedModule, PopoverModule.forRoot(), HttpClientTestingModule],
22     declarations: [TaskManagerComponent]
23   });
24
25   beforeEach(() => {
26     fixture = TestBed.createComponent(TaskManagerComponent);
27     component = fixture.componentInstance;
28     fixture.detectChanges();
29     tasks.executing = [
30       new ExecutingTask('rbd/delete', {
31         pool_name: 'somePool',
32         image_name: 'someImage'
33       })
34     ];
35     tasks.finished = [
36       new FinishedTask('rbd/copy', {
37         dest_pool_name: 'somePool',
38         dest_image_name: 'someImage'
39       }),
40       new FinishedTask('rbd/clone', {
41         child_pool_name: 'somePool',
42         child_image_name: 'someImage'
43       })
44     ];
45     tasks.finished[1].success = false;
46     tasks.finished[1].exception = { code: 17 };
47   });
48
49   it('should create', () => {
50     expect(component).toBeTruthy();
51   });
52
53   it('should get executing message for task', () => {
54     component._handleTasks(tasks.executing, []);
55     expect(component.executingTasks.length).toBe(1);
56     expect(component.executingTasks[0].description).toBe('Deleting RBD \'somePool/someImage\'');
57   });
58
59   it('should get finished message for task', () => {
60     component._handleTasks([], tasks.finished);
61     expect(component.finishedTasks.length).toBe(2);
62     expect(component.finishedTasks[0].description).toBe('Copy RBD \'somePool/someImage\'');
63     expect(component.finishedTasks[0].errorMessage).toBe(undefined);
64     expect(component.finishedTasks[1].description).toBe('Clone RBD \'somePool/someImage\'');
65     expect(component.finishedTasks[1].errorMessage).toBe(
66       'Name \'somePool/someImage\' is already in use.'
67     );
68   });
69
70   it('should get an empty hour glass with only finished tasks', () => {
71     component._setIcon(0);
72     expect(component.icon).toBe('fa-hourglass-o');
73   });
74
75   it('should get a nearly empty hour glass with executing tasks', () => {
76     component._setIcon(10);
77     expect(component.icon).toBe('fa-hourglass-start');
78   });
79 });