influxdb/ui/test/dashboards/components/TableOptions.test.tsx

161 lines
4.3 KiB
TypeScript
Raw Normal View History

2018-03-12 17:11:05 +00:00
import React from 'react'
import {TableOptions} from 'src/dashboards/components/TableOptions'
import FancyScrollbar from 'src/shared/components/FancyScrollbar'
import GraphOptionsTimeFormat from 'src/dashboards/components/GraphOptionsTimeFormat'
import GraphOptionsTimeAxis from 'src/dashboards/components/GraphOptionsTimeAxis'
import GraphOptionsSortBy from 'src/dashboards/components/GraphOptionsSortBy'
import GraphOptionsTextWrapping from 'src/dashboards/components/GraphOptionsTextWrapping'
import GraphOptionsCustomizeColumns from 'src/dashboards/components/GraphOptionsCustomizeColumns'
2018-03-15 03:57:55 +00:00
import ThresholdsList from 'src/shared/components/ThresholdsList'
import ThresholdsListTypeToggle from 'src/shared/components/ThresholdsListTypeToggle'
import GraphOptionsFixFirstColumn from 'src/dashboards/components/GraphOptionsFixFirstColumn'
2018-03-12 17:11:05 +00:00
import {shallow} from 'enzyme'
const queryConfigs = [
{
measurement: 'dev',
fields: [
{
alias: 'boom',
value: 'test',
},
{
alias: 'again',
value: 'again',
},
],
},
{
measurement: 'prod',
fields: [
{
alias: 'boom',
value: 'test',
},
{
alias: 'again',
value: 'again',
},
],
},
]
const defaultProps = {
queryConfigs: queryConfigs,
handleUpdateTableOptions: () => {},
tableOptions: {
timeFormat: '',
verticalTimeAxis: true,
sortBy: {internalName: '', displayName: ''},
wrapping: '',
columnNames: [],
fixFirstColumn: true,
},
onResetFocus: () => {},
}
2018-03-12 17:11:05 +00:00
const setup = (override = {}) => {
const props = {
...defaultProps,
2018-03-12 17:11:05 +00:00
...override,
}
const wrapper = shallow(<TableOptions {...props} />)
return {wrapper, props}
}
describe('Dashboards.Components.TableOptions', () => {
describe('getters', () => {
describe('computedColumnNames', () => {
it('returns the correct column names', () => {
const instance = new TableOptions(defaultProps)
const expected = [
{
displayName: '',
internalName: 'time',
},
{
displayName: '',
internalName: 'dev.boom',
},
{
displayName: '',
internalName: 'dev.again',
},
{
displayName: '',
internalName: 'prod.boom',
},
{
displayName: '',
internalName: 'prod.again',
},
]
expect(instance.computedColumnNames).toEqual(expected)
})
})
})
2018-03-12 17:11:05 +00:00
describe('rendering', () => {
it('should render all components', () => {
const queryConfigs = [
{
measurement: 'dev',
fields: [
{
alias: 'boom',
value: 'test',
},
],
},
]
const expectedSortOptions = [
{
key: 'time',
text: 'time',
},
{
key: 'dev.boom',
text: 'dev.boom',
},
]
const {wrapper} = setup({queryConfigs})
2018-03-12 17:11:05 +00:00
const fancyScrollbar = wrapper.find(FancyScrollbar)
const graphOptionsTimeFormat = wrapper.find(GraphOptionsTimeFormat)
const graphOptionsTimeAxis = wrapper.find(GraphOptionsTimeAxis)
const graphOptionsSortBy = wrapper.find(GraphOptionsSortBy)
const graphOptionsTextWrapping = wrapper.find(GraphOptionsTextWrapping)
const graphOptionsFixFirstColumn = wrapper.find(
GraphOptionsFixFirstColumn
)
2018-03-12 17:11:05 +00:00
const graphOptionsCustomizeColumns = wrapper.find(
GraphOptionsCustomizeColumns
)
2018-03-15 03:57:55 +00:00
const thresholdsList = wrapper.find(ThresholdsList)
const thresholdsListTypeToggle = wrapper.find(ThresholdsListTypeToggle)
2018-03-12 17:11:05 +00:00
expect(graphOptionsSortBy.props().sortByOptions).toEqual(
expectedSortOptions
)
2018-03-12 17:11:05 +00:00
expect(fancyScrollbar.exists()).toBe(true)
expect(graphOptionsTimeFormat.exists()).toBe(true)
expect(graphOptionsTimeAxis.exists()).toBe(true)
expect(graphOptionsSortBy.exists()).toBe(true)
expect(graphOptionsTextWrapping.exists()).toBe(true)
expect(graphOptionsFixFirstColumn.exists()).toBe(true)
2018-03-12 17:11:05 +00:00
expect(graphOptionsCustomizeColumns.exists()).toBe(true)
2018-03-15 03:57:55 +00:00
expect(thresholdsList.exists()).toBe(true)
expect(thresholdsListTypeToggle.exists()).toBe(true)
2018-03-12 17:11:05 +00:00
})
})
})