-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.js
More file actions
74 lines (65 loc) · 1.67 KB
/
Copy pathtest.js
File metadata and controls
74 lines (65 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/* global afterEach test expect */
import { render } from 'preact'
import { useForm } from './index'
afterEach(() => {
document.body.innerHTML = ''
})
test('useForm exports', () => {
expect(typeof useForm).toBe('function')
})
test('useForm should submit formData', (done) => {
const MyComp = () => {
const { submit, field } = useForm({
initialData: {
field1: 'init'
},
onSuccess: ({ formData }) => {
expect(formData).toHaveProperty('field1', 'changed')
done()
}
})
const { onChange } = field('field1')
onChange('changed')
submit(null)
return null
}
render(<MyComp />, document.body)
})
test('useForm should submit clear with new data', (done) => {
const MyComp = () => {
const { submit, field, clear } = useForm({
initialData: {
field1: 'init'
},
onSuccess: ({ formData }) => {
expect(formData).toHaveProperty('field1', 'init')
clear(false, { field1: 'cleared' })
const { value } = field('field1')
expect(value).toBe('cleared')
done()
}
})
submit(null)
return null
}
render(<MyComp />, document.body)
})
test('useForm should submit to API endpoint', (done) => {
const MyComp = () => {
const { submit } = useForm({
action: 'https://www.mocky.io/v2/5d28e8362c000068003edca8',
initialData: {
email: 'test@example.org',
password: 'testpassword'
},
onSuccess: ({ response }) => {
expect(response).toHaveProperty('userId')
expect(response).toHaveProperty('token')
done()
}
})
submit(null)
return null
}
render(<MyComp />, document.body)
})