Add FundArgInput test
parent
0171aa36b5
commit
9d2a93fc7c
|
@ -0,0 +1,78 @@
|
||||||
|
import React from 'react'
|
||||||
|
import {shallow} from 'enzyme'
|
||||||
|
import FuncArgInput from 'src/ifql/components/FuncArgInput'
|
||||||
|
|
||||||
|
const setup = (override?) => {
|
||||||
|
const props = {
|
||||||
|
funcID: '1',
|
||||||
|
argKey: 'db',
|
||||||
|
value: 'db1',
|
||||||
|
type: 'string',
|
||||||
|
onChangeArg: () => {},
|
||||||
|
onGenerateScript: () => {},
|
||||||
|
...override,
|
||||||
|
}
|
||||||
|
|
||||||
|
const wrapper = shallow(<FuncArgInput {...props} />)
|
||||||
|
|
||||||
|
return {
|
||||||
|
wrapper,
|
||||||
|
props,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('IFQL.Components.FuncArgInput', () => {
|
||||||
|
describe('rendering', () => {
|
||||||
|
it('renders without errors', () => {
|
||||||
|
const {wrapper} = setup()
|
||||||
|
|
||||||
|
expect(wrapper.exists()).toBe(true)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('user interraction', () => {
|
||||||
|
describe('typing', () => {
|
||||||
|
describe('hitting enter', () => {
|
||||||
|
it('generates a new script when Enter is pressed', () => {
|
||||||
|
const onGenerateScript = jest.fn()
|
||||||
|
const preventDefault = jest.fn()
|
||||||
|
|
||||||
|
const {wrapper} = setup({onGenerateScript})
|
||||||
|
|
||||||
|
const input = wrapper.find('input')
|
||||||
|
input.simulate('keydown', {key: 'Enter', preventDefault})
|
||||||
|
|
||||||
|
expect(onGenerateScript).toHaveBeenCalledTimes(1)
|
||||||
|
expect(preventDefault).toHaveBeenCalledTimes(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('it does not generate a new script when typing', () => {
|
||||||
|
const onGenerateScript = jest.fn()
|
||||||
|
const preventDefault = jest.fn()
|
||||||
|
|
||||||
|
const {wrapper} = setup({onGenerateScript})
|
||||||
|
|
||||||
|
const input = wrapper.find('input')
|
||||||
|
input.simulate('keydown', {key: 'a', preventDefault})
|
||||||
|
|
||||||
|
expect(onGenerateScript).not.toHaveBeenCalled()
|
||||||
|
expect(preventDefault).not.toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('changing the input value', () => {
|
||||||
|
it('calls onChangeArg', () => {
|
||||||
|
const onChangeArg = jest.fn()
|
||||||
|
const {wrapper, props} = setup({onChangeArg})
|
||||||
|
|
||||||
|
const input = wrapper.find('input')
|
||||||
|
const value = 'db2'
|
||||||
|
input.simulate('change', {target: {value}})
|
||||||
|
const {funcID, argKey} = props
|
||||||
|
|
||||||
|
expect(onChangeArg).toHaveBeenCalledWith({funcID, key: argKey, value})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in New Issue