forked from mgwalker/react-us-state-map
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.test.js
91 lines (83 loc) · 1.96 KB
/
index.test.js
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import React from 'react';
import { mount } from 'enzyme';
import toJson from 'enzyme-to-json';
import USStateMap from './index.js';
// Jest globals
/* global describe test expect */
describe('USStateMap renders as expected', () => {
const component = mount(
<USStateMap />
);
test('matches snapsot', () => {
expect(toJson(component)).toMatchSnapshot();
});
});
describe('USStateMap raises onClick event correctly', () => {
const states = {
AL: 'Alabama',
AK: 'Alaska',
AZ: 'Arizona',
AR: 'Arkansas',
CA: 'California',
CO: 'Colorado',
CT: 'Connecticut',
DE: 'Delaware',
DC: 'District of Columbia',
FL: 'Florida',
GA: 'Georgia',
HI: 'Hawaii',
ID: 'Idaho',
IL: 'Illinois',
IN: 'Indiana',
IA: 'Iowa',
KS: 'Kansas',
KY: 'Kentucky',
LA: 'Louisiana',
ME: 'Maine',
MD: 'Maryland',
MA: 'Massachusetts',
MI: 'Michigan',
MN: 'Minnesota',
MS: 'Mississippi',
MO: 'Missouri',
MT: 'Montana',
NE: 'Nebraska',
NV: 'Nevada',
NH: 'New Hampshire',
NJ: 'New Jersy',
NM: 'New Mexico',
NY: 'New York',
NC: 'North Carolina',
ND: 'North Dakota',
OH: 'Ohio',
OK: 'Oklahoma',
OR: 'Oregon',
PA: 'Pennsylvania',
RI: 'Rhode Island',
SC: 'South Carolina',
SD: 'South Dakota',
TN: 'Tennessee',
TX: 'Texas',
UT: 'Utah',
VT: 'Vermont',
VA: 'Virginia',
WA: 'Washington',
WV: 'West Virginia',
WI: 'Wisconsin',
WY: 'Wyoming'
};
for (const stateShortName of Object.keys(states)) {
test(`for ${states[stateShortName]} (${stateShortName})`, () => {
let stateFromEvent = null;
const onClickHandler = (e) => {
stateFromEvent = e;
};
const component = mount(
<USStateMap onClick={onClickHandler} />
);
const target = component.find(`.${stateShortName}`);
target.simulate('click');
expect(stateFromEvent).toBe(stateShortName);
});
}
});