Repository navigation
Expand file tree
/
Copy pathtest.js
More file actions
68 lines (60 loc) · 1.59 KB
/
Copy pathtest.js
File metadata and controls
68 lines (60 loc) · 1.59 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
/* global afterEach test expect */
import { render } from 'preact'
import { Dropdown } from './index.js'
afterEach(() => {
document.getElementsByTagName('html')[0].innerHTML = ''
})
test('Dropdown exports', () => {
expect(typeof Dropdown).toBe('function')
})
test('Dropdown should throw without uid', () => {
expect(() => {
render(
<Dropdown>
<p>Child</p>
</Dropdown>,
document.body
)
}).toThrow()
})
test('Dropdown should render default trigger button', () => {
render(
<Dropdown uid='1'>
<p>Child</p>
</Dropdown>,
document.body
)
expect(document.body.querySelector('button').textContent).toBe('Select')
})
test('Dropdown should be closed', () => {
render(
<Dropdown uid='1'>
<p>Child</p>
</Dropdown>,
document.body
)
expect(document.body.querySelector('.dropdown-menu.open')).toBeNull()
expect(document.body.querySelector('.dropdown-menu.close')).toBeDefined()
})
test('Dropdown should not render children', () => {
render(
<Dropdown uid='1' noWrapper>
<p id='child'>Child</p>
</Dropdown>,
document.body
)
expect(document.body.querySelector('.dropdown-menu')).toBeDefined()
expect(document.body.querySelector('#child')).toBeNull()
})
test('Dropdown should be open after toggle action', () => {
render(
<Dropdown uid='1' noWrapper>
<p id='child'>Child</p>
</Dropdown>,
document.body
)
document.body.querySelector('button').click()
expect(document.body.querySelector('#child')).toBeDefined()
document.body.click()
expect(document.body.querySelector('#child')).toBeNull()
})