2
2
3
3
import React , { Component } from 'react'
4
4
import PropTypes from 'prop-types'
5
- import semver from 'semver '
5
+ import TestRenderer from 'react-test-renderer '
6
6
import { createStore } from 'redux'
7
- import { Provider , createProvider , connect } from '../../src/index.js'
8
- import { TestRenderer , enzyme } from '../getTestDeps.js'
7
+ import { Provider , createProvider , connect } from '../../src/index'
9
8
10
9
describe ( 'React' , ( ) => {
11
10
describe ( 'Provider' , ( ) => {
@@ -34,39 +33,23 @@ describe('React', () => {
34
33
const spy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
35
34
36
35
try {
37
- expect ( ( ) => enzyme . mount (
36
+ expect ( ( ) => TestRenderer . create (
38
37
< Provider store = { store } >
39
38
< div />
40
39
</ Provider >
41
40
) ) . not . toThrow ( )
42
41
43
- if ( semver . lt ( React . version , '15.0.0' ) ) {
44
- expect ( ( ) => enzyme . mount (
45
- < Provider store = { store } >
46
- </ Provider >
47
- ) ) . toThrow ( / c h i l d r e n w i t h e x a c t l y o n e c h i l d / )
48
- } else {
49
- expect ( ( ) => enzyme . mount (
50
- < Provider store = { store } >
51
- </ Provider >
52
- ) ) . toThrow ( / a s i n g l e R e a c t e l e m e n t c h i l d / )
53
- }
42
+ expect ( ( ) => TestRenderer . create (
43
+ < Provider store = { store } >
44
+ </ Provider >
45
+ ) ) . toThrow ( / a s i n g l e R e a c t e l e m e n t c h i l d / )
54
46
55
- if ( semver . lt ( React . version , '15.0.0' ) ) {
56
- expect ( ( ) => enzyme . mount (
57
- < Provider store = { store } >
58
- < div />
59
- < div />
60
- </ Provider >
61
- ) ) . toThrow ( / c h i l d r e n w i t h e x a c t l y o n e c h i l d / )
62
- } else {
63
- expect ( ( ) => enzyme . mount (
64
- < Provider store = { store } >
65
- < div />
66
- < div />
67
- </ Provider >
68
- ) ) . toThrow ( / a s i n g l e R e a c t e l e m e n t c h i l d / )
69
- }
47
+ expect ( ( ) => TestRenderer . create (
48
+ < Provider store = { store } >
49
+ < div />
50
+ < div />
51
+ </ Provider >
52
+ ) ) . toThrow ( / a s i n g l e R e a c t e l e m e n t c h i l d / )
70
53
} finally {
71
54
Provider . propTypes = propTypes
72
55
spy . mockRestore ( )
@@ -77,15 +60,15 @@ describe('React', () => {
77
60
const store = createStore ( ( ) => ( { } ) )
78
61
79
62
const spy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
80
- const testRenderer = enzyme . mount (
63
+ const testRenderer = TestRenderer . create (
81
64
< Provider store = { store } >
82
65
< Child />
83
66
</ Provider >
84
67
)
85
68
expect ( spy ) . toHaveBeenCalledTimes ( 0 )
86
69
spy . mockRestore ( )
87
70
88
- const child = testRenderer . find ( Child ) . instance ( )
71
+ const child = testRenderer . root . findByType ( Child ) . instance
89
72
expect ( child . context . store ) . toBe ( store )
90
73
} )
91
74
@@ -95,15 +78,15 @@ describe('React', () => {
95
78
const CustomChild = createChild ( 'customStoreKey' ) ;
96
79
97
80
const spy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } ) ;
98
- const testRenderer = enzyme . mount (
81
+ const testRenderer = TestRenderer . create (
99
82
< CustomProvider store = { store } >
100
83
< CustomChild />
101
84
</ CustomProvider >
102
85
)
103
86
expect ( spy ) . toHaveBeenCalledTimes ( 0 )
104
87
spy . mockRestore ( )
105
88
106
- const child = testRenderer . find ( CustomChild ) . instance ( )
89
+ const child = testRenderer . root . findByType ( CustomChild ) . instance
107
90
expect ( child . context . customStoreKey ) . toBe ( store )
108
91
} )
109
92
@@ -126,12 +109,12 @@ describe('React', () => {
126
109
}
127
110
}
128
111
129
- const testRenderer = enzyme . mount ( < ProviderContainer /> )
130
- const child = testRenderer . find ( Child ) . instance ( )
112
+ const testRenderer = TestRenderer . create ( < ProviderContainer /> )
113
+ const child = testRenderer . root . findByType ( Child ) . instance
131
114
expect ( child . context . store . getState ( ) ) . toEqual ( 11 )
132
115
133
116
let spy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
134
- testRenderer . setState ( { store : store2 } )
117
+ testRenderer . root . instance . setState ( { store : store2 } )
135
118
136
119
expect ( child . context . store . getState ( ) ) . toEqual ( 11 )
137
120
expect ( spy ) . toHaveBeenCalledTimes ( 1 )
@@ -145,7 +128,7 @@ describe('React', () => {
145
128
spy . mockRestore ( )
146
129
147
130
spy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
148
- testRenderer . setState ( { store : store3 } )
131
+ testRenderer . root . instance . setState ( { store : store3 } )
149
132
150
133
expect ( child . context . store . getState ( ) ) . toEqual ( 11 )
151
134
expect ( spy ) . toHaveBeenCalledTimes ( 0 )
@@ -168,7 +151,7 @@ describe('React', () => {
168
151
render ( ) { return < Provider store = { innerStore } > < Inner /> </ Provider > }
169
152
}
170
153
171
- enzyme . mount ( < Provider store = { outerStore } > < Outer /> </ Provider > )
154
+ TestRenderer . create ( < Provider store = { outerStore } > < Outer /> </ Provider > )
172
155
expect ( innerMapStateToProps ) . toHaveBeenCalledTimes ( 1 )
173
156
174
157
innerStore . dispatch ( { type : 'INC' } )
@@ -216,7 +199,7 @@ describe('React', () => {
216
199
}
217
200
}
218
201
219
- const testRenderer = enzyme . mount (
202
+ const testRenderer = TestRenderer . create (
220
203
< Provider store = { store } >
221
204
< Container />
222
205
</ Provider >
@@ -229,19 +212,16 @@ describe('React', () => {
229
212
expect ( childMapStateInvokes ) . toBe ( 2 )
230
213
231
214
// setState calls DOM handlers are batched
232
- const button = testRenderer . find ( 'button' )
233
- button . prop ( ' onClick' ) ( )
215
+ const button = testRenderer . root . findByType ( 'button' )
216
+ button . props . onClick ( )
234
217
expect ( childMapStateInvokes ) . toBe ( 3 )
235
218
236
219
// Provider uses unstable_batchedUpdates() under the hood
237
220
store . dispatch ( { type : 'APPEND' , body : 'd' } )
238
221
expect ( childMapStateInvokes ) . toBe ( 4 )
239
222
} )
240
223
241
- it ( 'works in <StrictMode> without warnings (React 16.3+)' , ( ) => {
242
- if ( ! React . StrictMode ) {
243
- return
244
- }
224
+ it ( 'works in <StrictMode> without warnings' , ( ) => {
245
225
const spy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } )
246
226
const store = createStore ( ( ) => ( { } ) )
247
227
0 commit comments