chronograf/ui/test/kapacitor/components/TickscriptHeader.test.tsx

101 lines
2.8 KiB
TypeScript
Raw Normal View History

import React from 'react'
2018-06-19 18:29:56 +00:00
import {mount} from 'enzyme'
import PageHeader from 'src/reusable_ui/components/page_layout/PageHeader'
2018-04-09 17:44:41 +00:00
import TickscriptHeader from 'src/kapacitor/components/TickscriptHeader'
import TickscriptSave from 'src/kapacitor/components/TickscriptSave'
import {source} from 'test/resources'
const mockContext = jest.fn()
jest.mock('src/CheckSources', () => ({
SourceContext: {
Consumer: ({children}) => children(mockContext()),
},
}))
const setup = (override?) => {
const props = {
isNewTickscript: false,
onToggleLogsVisibility: () => {},
onSave: () => {},
onExit: () => {},
areLogsVisible: false,
areLogsEnabled: false,
task: {
id: '1',
dbrps: [],
},
unsavedChanges: false,
...override,
}
mockContext.mockReturnValue(source)
2018-06-19 18:29:56 +00:00
const wrapper = mount(<TickscriptHeader {...props} />)
return {
wrapper,
}
}
describe('Kapacitor.Components.TickscriptHeader', () => {
describe('rendering', () => {
it('renders without error', () => {
const {wrapper} = setup()
expect(wrapper.exists()).toBe(true)
})
})
describe('user interreaction', () => {
describe('saving an existing tickscript', () => {
it('is disabled if there are no changes', () => {
const {wrapper} = setup({unsavedChanges: false})
2018-06-19 18:29:56 +00:00
const pageHeader = wrapper.find(PageHeader)
const save = pageHeader.find(TickscriptSave)
const saveButton = save.find('button')
expect(saveButton.props().disabled).toBe(true)
})
it('is disabled if there are no dbrps', () => {
const {wrapper} = setup({unsavedChanges: true})
2018-06-19 18:29:56 +00:00
const pageHeader = wrapper.find(PageHeader)
const save = pageHeader.find(TickscriptSave)
const saveButton = save.find('button')
expect(saveButton.props().disabled).toBe(true)
})
})
describe('saving a new tickscript', () => {
describe('when there are no dbrps', () => {
it('disables saving', () => {
const task = {id: '1', dbrps: []}
const {wrapper} = setup({isNewTickscript: true, task})
2018-06-19 18:29:56 +00:00
const pageHeader = wrapper.find(PageHeader)
const save = pageHeader.find(TickscriptSave)
const saveButton = save.find('button')
expect(saveButton.props().disabled).toBe(true)
})
})
describe('when there is not an id', () => {
it('disables saving', () => {
const task = {id: '', dbrps: [{db: 'db1', rp: 'rp1'}]}
const {wrapper} = setup({isNewTickscript: true, task})
2018-06-19 18:29:56 +00:00
const pageHeader = wrapper.find(PageHeader)
const save = pageHeader.find(TickscriptSave)
const saveButton = save.find('button')
expect(saveButton.props().disabled).toBe(true)
})
})
})
})
})