forked from grafana.jool/grafana-jool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.8 KiB
55 lines
1.8 KiB
import React from 'react';
|
|
import { mount } from 'enzyme';
|
|
import { DashboardRow } from './DashboardRow';
|
|
import { PanelModel } from '../../state/PanelModel';
|
|
|
|
describe('DashboardRow', () => {
|
|
let wrapper: any, panel: PanelModel, dashboardMock: any;
|
|
|
|
beforeEach(() => {
|
|
dashboardMock = {
|
|
toggleRow: jest.fn(),
|
|
on: jest.fn(),
|
|
meta: {
|
|
canEdit: true,
|
|
},
|
|
events: { subscribe: jest.fn() },
|
|
};
|
|
|
|
panel = new PanelModel({ collapsed: false });
|
|
wrapper = mount(<DashboardRow panel={panel} dashboard={dashboardMock} />);
|
|
});
|
|
|
|
it('Should not have collapsed class when collaped is false', () => {
|
|
expect(wrapper.find('.dashboard-row')).toHaveLength(1);
|
|
expect(wrapper.find('.dashboard-row--collapsed')).toHaveLength(0);
|
|
});
|
|
|
|
it('Should collapse after clicking title', () => {
|
|
wrapper.find('.dashboard-row__title').simulate('click');
|
|
|
|
expect(wrapper.find('.dashboard-row--collapsed')).toHaveLength(1);
|
|
expect(dashboardMock.toggleRow.mock.calls).toHaveLength(1);
|
|
});
|
|
|
|
it('Should subscribe to event during mount', () => {
|
|
expect(dashboardMock.events.subscribe.mock.calls).toHaveLength(1);
|
|
});
|
|
|
|
it('should have two actions as admin', () => {
|
|
expect(wrapper.find('.dashboard-row__actions .pointer')).toHaveLength(2);
|
|
});
|
|
|
|
it('should not show row drag handle when cannot edit', () => {
|
|
dashboardMock.meta.canEdit = false;
|
|
wrapper = mount(<DashboardRow panel={panel} dashboard={dashboardMock} />);
|
|
expect(wrapper.find('.dashboard-row__drag')).toHaveLength(0);
|
|
});
|
|
|
|
it('should have zero actions when cannot edit', () => {
|
|
dashboardMock.meta.canEdit = false;
|
|
panel = new PanelModel({ collapsed: false });
|
|
wrapper = mount(<DashboardRow panel={panel} dashboard={dashboardMock} />);
|
|
expect(wrapper.find('.dashboard-row__actions .pointer')).toHaveLength(0);
|
|
});
|
|
});
|
|
|