DashboardRow.jest.tsx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import React from 'react';
  2. import { shallow } from 'enzyme';
  3. import { DashboardRow } from '../dashgrid/DashboardRow';
  4. import { PanelModel } from '../panel_model';
  5. import config from '../../../core/config';
  6. describe('DashboardRow', () => {
  7. let wrapper, panel, getPanelContainer, dashboardMock;
  8. beforeEach(() => {
  9. dashboardMock = { toggleRow: jest.fn() };
  10. config.bootData = {
  11. user: {
  12. orgRole: 'Admin',
  13. },
  14. };
  15. getPanelContainer = jest.fn().mockReturnValue({
  16. getDashboard: jest.fn().mockReturnValue(dashboardMock),
  17. getPanelLoader: jest.fn(),
  18. });
  19. panel = new PanelModel({ collapsed: false });
  20. wrapper = shallow(<DashboardRow panel={panel} getPanelContainer={getPanelContainer} />);
  21. });
  22. it('Should not have collapsed class when collaped is false', () => {
  23. expect(wrapper.find('.dashboard-row')).toHaveLength(1);
  24. expect(wrapper.find('.dashboard-row--collapsed')).toHaveLength(0);
  25. });
  26. it('Should collapse after clicking title', () => {
  27. wrapper.find('.dashboard-row__title').simulate('click');
  28. expect(wrapper.find('.dashboard-row--collapsed')).toHaveLength(1);
  29. expect(dashboardMock.toggleRow.mock.calls).toHaveLength(1);
  30. });
  31. it('should have two actions as admin', () => {
  32. expect(wrapper.find('.dashboard-row__actions .pointer')).toHaveLength(2);
  33. });
  34. it('should have zero actions as viewer', () => {
  35. config.bootData.user.orgRole = 'Viewer';
  36. panel = new PanelModel({ collapsed: false });
  37. wrapper = shallow(<DashboardRow panel={panel} getPanelContainer={getPanelContainer} />);
  38. expect(wrapper.find('.dashboard-row__actions .pointer')).toHaveLength(0);
  39. });
  40. });