Skip to content

Commit 6a2a75a

Browse files
authored
Test <Input /> component (#94)
1 parent 42e9afb commit 6a2a75a

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

tests/components/Input.test.js

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,37 @@
11
import * as React from 'react'
22
import TestRenderer from 'react-test-renderer'
33
import { Input } from '../../src'
4+
import { last } from './utils'
45

56
test('<Input />', () => {
67
const renderFn = jest.fn().mockReturnValue(null)
7-
TestRenderer.create(<Input render={renderFn} />)
8-
// TODO
8+
TestRenderer.create(<Input initial="init" render={renderFn} />)
9+
const lastCalled = () => last(renderFn.mock.calls)[0]
10+
11+
expect(renderFn).toHaveBeenCalledTimes(1)
12+
expect(lastCalled().value).toEqual('init')
13+
expect(lastCalled().bind.value).toEqual('init')
14+
15+
lastCalled().set('value2')
16+
expect(renderFn).toHaveBeenCalledTimes(2)
17+
expect(lastCalled().value).toEqual('value2')
18+
expect(lastCalled().bind.value).toEqual('value2')
19+
20+
lastCalled().bind.onChange({ target: { value: 'value3' } })
21+
expect(renderFn).toHaveBeenCalledTimes(3)
22+
expect(lastCalled().value).toEqual('value3')
23+
expect(lastCalled().bind.value).toEqual('value3')
24+
})
25+
26+
test('<Input onChange />', () => {
27+
const renderFn = jest.fn().mockReturnValue(null)
28+
const onChangeFn = jest.fn()
29+
const lastCalled = () => last(renderFn.mock.calls)[0]
30+
TestRenderer.create(<Input onChange={onChangeFn} render={renderFn} />)
31+
32+
expect(onChangeFn).toHaveBeenCalledTimes(0)
33+
34+
lastCalled().set('value')
35+
expect(onChangeFn).toHaveBeenCalledTimes(1)
36+
expect(onChangeFn).lastCalledWith({ value: 'value' })
937
})

0 commit comments

Comments
 (0)