]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: fix disable action for MGR modules 37753/head
authorKiefer Chang <kiefer.chang@suse.com>
Thu, 22 Oct 2020 06:39:46 +0000 (14:39 +0800)
committerKiefer Chang <kiefer.chang@suse.com>
Thu, 22 Oct 2020 09:02:01 +0000 (17:02 +0800)
Fixes: https://tracker.ceph.com/issues/47947
Signed-off-by: Kiefer Chang <kiefer.chang@suse.com>
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/mgr-modules/mgr-module-list/mgr-module-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/mgr-modules/mgr-module-list/mgr-module-list.component.ts

index f340bd83264c6147cb859c892a563ebe14b8d3e3..46f633487acb654b323dc8832bc7653712947506 100644 (file)
@@ -129,23 +129,27 @@ describe('MgrModuleListComponent', () => {
       expect(component.table.refreshBtn).toHaveBeenCalled();
     }));
 
-    it('should not disable module (1)', () => {
+    it.only('should not disable module without selecting one', () => {
+      expect(component.getTableActionDisabledDesc()).toBeTruthy();
+    });
+
+    it('should not disable dashboard module', () => {
       component.selection.selected = [
         {
           name: 'dashboard'
         }
       ];
-      expect(component.isTableActionDisabled('enabled')).toBeTruthy();
+      expect(component.getTableActionDisabledDesc()).toBeTruthy();
     });
 
-    it('should not disable module (2)', () => {
+    it('should not disable an always-on module', () => {
       component.selection.selected = [
         {
           name: 'bar',
           always_on: true
         }
       ];
-      expect(component.isTableActionDisabled('enabled')).toBeTruthy();
+      expect(component.getTableActionDisabledDesc()).toBe('This Manager module is always on.');
     });
   });
 });
index 3e75ab9792b8d578c6d478680539fc800876ef44..636f131704129542c2bccc43836a184140713091 100644 (file)
@@ -88,7 +88,7 @@ export class MgrModuleListComponent extends ListWithDetails {
         name: $localize`Disable`,
         permission: 'update',
         click: () => this.updateModuleState(),
-        disable: () => () => this.getTableActionDisabledDesc(),
+        disable: () => this.getTableActionDisabledDesc(),
         icon: Icons.stop
       }
     ];
@@ -139,7 +139,7 @@ export class MgrModuleListComponent extends ListWithDetails {
   }
 
   getTableActionDisabledDesc(): string | boolean {
-    if (this.selection.first().always_on) {
+    if (this.selection.first()?.always_on) {
       return $localize`This Manager module is always on.`;
     }