});
describe('test table actions in submenu', () => {
- beforeEach(
- fakeAsync(() => {
- // The menu needs a click to render the dropdown!
- const dropDownToggle = fixture.debugElement.query(By.css('.dropdown-toggle'));
- dropDownToggle.triggerEventHandler('click', null);
- tick();
- fixture.detectChanges();
- })
- );
+ beforeEach(fakeAsync(() => {
+ // The menu needs a click to render the dropdown!
+ const dropDownToggle = fixture.debugElement.query(By.css('.dropdown-toggle'));
+ dropDownToggle.triggerEventHandler('click', null);
+ tick();
+ fixture.detectChanges();
+ }));
- /**
- * 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);
+ });
});
});