1
import * as React from 'react';
2
import { shallow } from 'enzyme';
3
import PanelList, { PanelListContent } from './PanelList';
4
import Checkbox from '../../components/Checkbox';
5
import { Button } from 'reactstrap';
6
import Panel from './Panel';
8
describe('PanelList', () => {
9
it('renders configuration checkboxes', () => {
11
{ id: 'use-local-time-checkbox', label: 'Use local time', default: false },
12
{ id: 'query-history-checkbox', label: 'Enable query history', default: false },
13
{ id: 'autocomplete-checkbox', label: 'Enable autocomplete', default: true },
14
{ id: 'highlighting-checkbox', label: 'Enable highlighting', default: true },
15
{ id: 'linter-checkbox', label: 'Enable linter', default: true },
16
].forEach((cb, idx) => {
17
const panelList = shallow(<PanelList />);
18
const checkbox = panelList.find(Checkbox).at(idx);
19
expect(checkbox.prop('id')).toEqual(cb.id);
20
expect(checkbox.prop('defaultChecked')).toBe(cb.default);
21
expect(checkbox.children().text()).toBe(cb.label);
25
it('renders panels', () => {
26
const panelList = shallow(<PanelListContent {...({ panels: [{ id: 'foo' }] } as any)} />);
27
const panels = panelList.find(Panel);
28
expect(panels.length).toBeGreaterThan(0);
31
it('renders a button to add a panel', () => {
32
const panelList = shallow(<PanelListContent {...({ panels: [] } as any)} />);
33
const btn = panelList.find(Button);
34
expect(btn.prop('color')).toEqual('primary');
35
expect(btn.children().text()).toEqual('Add Panel');