import React from 'react' import {shallow} from 'enzyme' import DatabaseListItem from 'src/shared/components/DatabaseListItem' const namespace = {database: 'db1', retentionPolicy: 'rp1'} const setup = (override = {}) => { const props = { isActive: false, namespace, onChooseNamespace: () => () => {}, ...override, } const item = shallow() return { item, props, } } describe('Shared.Components.DatabaseListItem', () => { describe('rendering', () => { it('renders the ', () => { const {item} = setup() expect(item.exists()).toBe(true) }) describe('if isActive is false', () => { it('does not have the `.active` class', () => { const {item} = setup() expect(item.hasClass('active')).toBe(false) }) it('does have the `.active` class', () => { const {item} = setup({isActive: true}) expect(item.hasClass('active')).toBe(true) }) }) }) describe('callbacks', () => { describe('onChooseNamespace', () => { it('calls onChooseNamespace with the items namespace when clicked', () => { const onChooseNamespace = jest.fn() const {item} = setup({onChooseNamespace}) item.simulate('click') expect(onChooseNamespace).toHaveBeenCalledTimes(1) expect(onChooseNamespace).toBeCalledWith(namespace) }) }) }) })