1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { ComponentFixture, TestBed } from '@angular/core/testing';
4 import { PopoverModule } from 'ngx-bootstrap';
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';
12 describe('TaskManagerComponent', () => {
13 let component: TaskManagerComponent;
14 let fixture: ComponentFixture<TaskManagerComponent>;
21 imports: [SharedModule, PopoverModule.forRoot(), HttpClientTestingModule],
22 declarations: [TaskManagerComponent]
26 fixture = TestBed.createComponent(TaskManagerComponent);
27 component = fixture.componentInstance;
28 fixture.detectChanges();
30 new ExecutingTask('rbd/delete', {
31 pool_name: 'somePool',
32 image_name: 'someImage'
36 new FinishedTask('rbd/copy', {
37 dest_pool_name: 'somePool',
38 dest_image_name: 'someImage'
40 new FinishedTask('rbd/clone', {
41 child_pool_name: 'somePool',
42 child_image_name: 'someImage'
45 tasks.finished[1].success = false;
46 tasks.finished[1].exception = { code: 17 };
49 it('should create', () => {
50 expect(component).toBeTruthy();
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\'');
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.'
70 it('should get an empty hour glass with only finished tasks', () => {
71 component._setIcon(0);
72 expect(component.icon).toBe('fa-hourglass-o');
75 it('should get a nearly empty hour glass with executing tasks', () => {
76 component._setIcon(10);
77 expect(component.icon).toBe('fa-hourglass-start');