]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Simplify OSD disabled action test 24824/head
authorStephan Müller <smueller@suse.com>
Mon, 29 Oct 2018 16:40:52 +0000 (17:40 +0100)
committerStephan Müller <smueller@suse.com>
Mon, 5 Nov 2018 13:36:49 +0000 (14:36 +0100)
Fixes: https://tracker.ceph.com/issues/36616
Signed-off-by: Stephan Müller <smueller@suse.com>
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-list/osd-list.component.spec.ts

index 2814989c12d3d89d12955ebd8f2534d64032edc0..7e8533417e1bee37c5a26422e9f6a4a4d3f13c72 100644 (file)
@@ -1,5 +1,4 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
-import { DebugElement } from '@angular/core';
 import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
 import { ReactiveFormsModule } from '@angular/forms';
 import { By } from '@angular/platform-browser';
@@ -14,6 +13,7 @@ import { OsdService } from '../../../../shared/api/osd.service';
 import { ConfirmationModalComponent } from '../../../../shared/components/confirmation-modal/confirmation-modal.component';
 import { CriticalConfirmationModalComponent } from '../../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { TableActionsComponent } from '../../../../shared/datatable/table-actions/table-actions.component';
+import { CdTableAction } from '../../../../shared/models/cd-table-action';
 import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
 import { Permissions } from '../../../../shared/models/permissions';
 import { AuthStorageService } from '../../../../shared/services/auth-storage.service';
@@ -117,25 +117,15 @@ describe('OsdListComponent', () => {
       })
     );
 
-    /**
-     * Helper function to retrieve menu item
-     * @param selector
-     */
-    const getMenuItem = (selector: string): DebugElement => {
-      return fixture.debugElement
-        .query(By.directive(TableActionsComponent))
-        .query(By.css(selector));
-    };
+    it('has all menu entries disabled', () => {
+      const tableActionElement = fixture.debugElement.query(By.directive(TableActionsComponent));
+      const toClassName = TestBed.get(TableActionsComponent).toClassName;
+      const getActionClasses = (action: CdTableAction) =>
+        tableActionElement.query(By.css('.' + toClassName(action.name))).classes;
 
-    it('has menu entries disabled for entries without create permission', () => {
-      component.tableActions
-        .filter((tableAction) => tableAction.permission !== 'create')
-        .map((tableAction) => tableAction.name)
-        .map(TestBed.get(TableActionsComponent).toClassName)
-        .map((className) => getMenuItem(`.${className}`))
-        .forEach((debugElement) => {
-          expect(debugElement.classes.disabled).toBe(true);
-        });
+      component.tableActions.forEach((action) => {
+        expect(getActionClasses(action).disabled).toBe(true);
+      });
     });
   });