]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: fix frontend unit tests
authorNizamudeen A <nia@redhat.com>
Tue, 28 Jun 2022 17:33:04 +0000 (23:03 +0530)
committerPere Diaz Bou <pdiazbou@redhat.com>
Tue, 12 Jul 2022 17:09:02 +0000 (19:09 +0200)
Signed-off-by: Nizamudeen A <nia@redhat.com>
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/cd-table-server-side.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-list.service.ts

index c2ce6b87f8bc22a4cc56fa7c6392d66c702dd9cb..85e9ad35dbd56bffa620e54e10dde61ed2728897 100644 (file)
@@ -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);
     });
   });
 
index 23dd249a7d0e043c0332412d3e095130dd537892..e3040f693137bdb973b2425a11b3f73563488224 100644 (file)
@@ -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[] {
index f302a6896f3b8a0311dbfe6f9769afe6e3009c7f..56bf807a6c5f7d763c5c86fc008ab268d7283f9e 100644 (file)
@@ -9,6 +9,6 @@ export class CdTableServerSideService {
   constructor() {}
 
   static getCount(resp: HttpResponse<any>): number {
-    return Number(resp.headers.get('X-Total-Count'));
+    return Number(resp.headers?.get('X-Total-Count'));
   }
 }
index e6a54cac7b7dd4cbc32655245d01717cbfa4d96e..32145475336381da43d95d7549941e9405ee5961 100644 (file)
@@ -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)) {