From a27eea3e8c834eb6e148aeef72a5e8522d81ef97 Mon Sep 17 00:00:00 2001 From: Nizamudeen A Date: Tue, 28 Jun 2022 23:03:04 +0530 Subject: [PATCH] mgr/dashboard: fix frontend unit tests Signed-off-by: Nizamudeen A --- .../app/ceph/block/rbd-list/rbd-list.component.spec.ts | 8 +++++--- .../src/app/ceph/block/rbd-list/rbd-list.component.ts | 8 +++----- .../app/shared/services/cd-table-server-side.service.ts | 2 +- .../frontend/src/app/shared/services/task-list.service.ts | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.spec.ts index c2ce6b87f8bc2..85e9ad35dbd56 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.spec.ts @@ -1,3 +1,4 @@ +import { HttpHeaders } from '@angular/common/http'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @@ -253,6 +254,7 @@ describe('RbdListComponent', () => { component.images = images; refresh({ executing_tasks: [], finished_tasks: [] }); spyOn(rbdService, 'list').and.callFake(() => of([{ pool_name: 'rbd', value: images }])); + new HttpHeaders().set('X-Total-Count', '10'); fixture.detectChanges(); }); @@ -290,12 +292,12 @@ describe('RbdListComponent', () => { it('should show when an existing image is being modified', () => { addTask('rbd/edit', 'a'); - addTask('rbd/delete', 'b'); - addTask('rbd/flatten', 'c'); - expect(component.images.length).toBe(3); expectItemTasks(component.images[0], 'Updating'); + addTask('rbd/delete', 'b'); expectItemTasks(component.images[1], 'Deleting'); + addTask('rbd/flatten', 'c'); expectItemTasks(component.images[2], 'Flattening'); + expect(component.images.length).toBe(3); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.ts index 23dd249a7d0e0..e3040f693137b 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.ts @@ -360,16 +360,14 @@ export class RbdListComponent extends ListWithDetails implements OnInit { onFetchError() { this.table.reset(); // Disable loading indicator. + this.tableStatus = new TableStatusViewCache(ViewCacheStatus.ValueException); } - getRbdImages(context: CdTableFetchDataContext = null) { + getRbdImages(context: CdTableFetchDataContext) { if (context !== null) { this.tableContext = context; } - if(this.tableContext == null) { - this.tableContext = new CdTableFetchDataContext(() => {}); - } - return this.rbdService.list(this.tableContext.toParams()); + return this.rbdService.list(this.tableContext?.toParams()); } prepareResponse(resp: any[]): any[] { diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/cd-table-server-side.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/cd-table-server-side.service.ts index f302a6896f3b8..56bf807a6c5f7 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/cd-table-server-side.service.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/cd-table-server-side.service.ts @@ -9,6 +9,6 @@ export class CdTableServerSideService { constructor() {} static getCount(resp: HttpResponse): number { - return Number(resp.headers.get('X-Total-Count')); + return Number(resp.headers?.get('X-Total-Count')); } } diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-list.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-list.service.ts index e6a54cac7b7dd..3214547533638 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-list.service.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-list.service.ts @@ -66,7 +66,7 @@ export class TaskListService implements OnDestroy { fetch(context: any = null) { this.getUpdate(context).subscribe((resp: any) => { - this.updateData(resp, this.summary['executing_tasks'].filter(this.taskFilter)); + this.updateData(resp, this.summary?.['executing_tasks'].filter(this.taskFilter)); }, this.onFetchError); } @@ -82,7 +82,7 @@ export class TaskListService implements OnDestroy { private addMissing(data: any[], tasks: ExecutingTask[]) { const defaultBuilder = this.builders['default']; - tasks.forEach((task) => { + tasks?.forEach((task) => { const existing = data.find((item) => this.itemFilter(item, task)); const builder = this.builders[task.name]; if (!existing && (builder || defaultBuilder)) { -- 2.39.5