Skip to content

Commit 8d2430b

Browse files
committed
chore: update tests to work with new version of enzyme/enzyme adapter
1 parent 241b105 commit 8d2430b

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed

src/index.test.tsx

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@ import {mount, shallow} from 'enzyme'
55
import toJson from 'enzyme-to-json'
66
import * as React from 'react'
77
import compose from 'recompose/compose'
8+
import defaultProps from 'recompose/defaultProps'
89
import {withSpinner} from './index'
910

1011
const Loading = () => <span>Loading...</span>
1112
jest.useFakeTimers()
1213

1314
describe('withSpinner', () => {
1415
it('should render spinner if loading is true', () => {
15-
const Component = compose(
16-
WrappedComponent => props => <WrappedComponent {...props} data={{loading: true}} />,
16+
const Component = compose<any, {}>(
17+
defaultProps({data: {loading: true}}),
1718
withSpinner({spinnerComponent: Loading}),
1819
)(() => <div></div>)
1920

@@ -29,8 +30,8 @@ describe('withSpinner', () => {
2930
})
3031

3132
it('should not render spinner if loading is false', () => {
32-
const Component = compose(
33-
WrappedComponent => props => <WrappedComponent {...props} data={{loading: false}} />,
33+
const Component = compose<any, {}>(
34+
defaultProps({data: {loading: false}}),
3435
withSpinner({spinnerComponent: Loading}),
3536
)(({data}) => <div>loading: {data.loading.toString()}</div>)
3637

@@ -43,7 +44,7 @@ describe('withSpinner', () => {
4344
it('should render spinner in 100 ms and after render component', () => {
4445
const DisplayComponent = ({data}) => <div>loading: {data.loading.toString()}, item: {data.item.id}</div>
4546

46-
const Component = compose(
47+
const Component = compose<any, {}>(
4748
WrappedComponent => class extends React.Component<any, any> {
4849
state = {loading: true, item: null}
4950

@@ -61,19 +62,21 @@ describe('withSpinner', () => {
6162
withSpinner({spinnerComponent: Loading}),
6263
)(DisplayComponent)
6364

64-
const wrapper = mount(<Component />)
65+
let wrapper = mount(<Component />)
6566

6667
// Should not display a Spinner
6768
expect(wrapper.html()).toBeNull()
6869

6970
// Run timer to 100 ms since withSpinner timeout defaults to 100 ms
7071
jest.runTimersToTime(100)
7172
// ProgressBar should now be found
73+
wrapper = wrapper.update()
7274
expect(wrapper.find(Loading)).toHaveLength(1)
7375
expect(wrapper.find(DisplayComponent)).toHaveLength(0)
7476

7577
// Run timer to 1000 ms for our own timeout
7678
jest.runTimersToTime(1000)
79+
wrapper = wrapper.update()
7780
// DisplayComponent should be found
7881
expect(wrapper.find(DisplayComponent)).toHaveLength(1)
7982
expect(wrapper.find(Loading)).toHaveLength(0)
@@ -85,22 +88,21 @@ describe('withSpinner', () => {
8588
const Loading = () => <span>Loading...</span>
8689

8790
const Component = compose(
88-
WrappedComponent => props => <WrappedComponent {...props} data={{loading: true}} />,
91+
defaultProps({data: {loading: true}}),
8992
withSpinner({spinnerComponent: Loading}),
9093
)(null)
9194

9295
const wrapper = shallow(<Component />).first().shallow()
9396
jest.runTimersToTime(100)
94-
wrapper.update()
9597

9698
expect(toJson(wrapper)).toMatchSnapshot()
9799
})
98100

99101
it('should ignore errors if handleError is false', () => {
100102
const DisplayComponent = ({data}) => <div>loading: {data.loading.toString()}, item: {data.item.id}</div>
101103

102-
const Component = compose(
103-
WrappedComponent => props => <WrappedComponent {...props} data={{loading: false, error: true}} />,
104+
const Component = compose<any, {}>(
105+
defaultProps({data: {loading: false, error: true}}),
104106
withSpinner({spinnerComponent: Loading, handleError: false}),
105107
)(DisplayComponent)
106108

@@ -114,7 +116,7 @@ describe('withSpinner', () => {
114116
const ErrorComponent = () => <span>An unknown error occured...</span>
115117

116118
const Component = compose(
117-
WrappedComponent => props => <WrappedComponent {...props} data={{loading: false, error: true}} />,
119+
defaultProps({data: {loading: false, error: true}}),
118120
withSpinner({spinnerComponent: Loading, errorComponent: ErrorComponent}),
119121
)(null)
120122

@@ -128,8 +130,8 @@ describe('withSpinner', () => {
128130
it('should delay rendering of spinnerComponent the timeout that is passed', () => {
129131
const DisplayComponent = ({data}) => <div>loading: {data.loading.toString()}, item: {data.item.id}</div>
130132

131-
const Component = compose(
132-
WrappedComponent => props => <WrappedComponent {...props} data={{loading: true}} />,
133+
const Component = compose<any, {}>(
134+
defaultProps({data: {loading: true}}),
133135
withSpinner({spinnerComponent: Loading, timeout: 500}),
134136
)(DisplayComponent)
135137

@@ -141,7 +143,7 @@ describe('withSpinner', () => {
141143

142144
// Run timer over our timeout
143145
jest.runTimersToTime(600)
144-
expect(wrapper.first().shallow().node).toEqual(Loading())
146+
expect(wrapper.first().shallow().getElement()).toEqual(Loading())
145147
})
146148

147149
it('should not render errorComponent if skipErrors returns true', () => {
@@ -151,8 +153,8 @@ describe('withSpinner', () => {
151153
Validation error occured on field: {error.validationError.field} with message: {error.validationError.message}
152154
</div>
153155

154-
const Component = compose(
155-
WrappedComponent => props => <WrappedComponent {...props} data={{loading: false, error: validationError}} />,
156+
const Component = compose<any, {}>(
157+
defaultProps({data: {loading: false, error: validationError}}),
156158
withSpinner(({spinnerComponent: Loading,
157159
errorComponent: ErrorComponent,
158160
skipErrors: data => data.error.validationError && data.error.validationError.field === 'password'
@@ -169,7 +171,7 @@ describe('withSpinner', () => {
169171
it('should support custom loading property', () => {
170172
const DisplayComponent = ({result}) => <div>loading: {result.loading.toString()}, item: {result.item.id}</div>
171173

172-
const Component = compose(
174+
const Component = compose<any, {}>(
173175
WrappedComponent => class extends React.Component<any, any> {
174176
state = {loading: true, item: null}
175177

@@ -187,19 +189,21 @@ describe('withSpinner', () => {
187189
withSpinner({spinnerComponent: Loading, prop: 'result'}),
188190
)(DisplayComponent)
189191

190-
const wrapper = mount(<Component />)
192+
let wrapper = mount(<Component />)
191193

192194
// Should not display a Spinner
193195
expect(wrapper.html()).toBeNull()
194196

195197
// Run timer to 100 ms since withSpinner timeout defaults to 100 ms
196198
jest.runTimersToTime(100)
199+
wrapper = wrapper.update()
197200
// ProgressBar should now be found
198201
expect(wrapper.find(Loading)).toHaveLength(1)
199202
expect(wrapper.find(DisplayComponent)).toHaveLength(0)
200203

201204
// Run timer to 1000 ms for our own timeout
202205
jest.runTimersToTime(1000)
206+
wrapper = wrapper.update()
203207
// DisplayComponent should be found
204208
expect(wrapper.find(DisplayComponent)).toHaveLength(1)
205209
expect(wrapper.find(Loading)).toHaveLength(0)
@@ -208,7 +212,7 @@ describe('withSpinner', () => {
208212
it('should support custom nested loading property', () => {
209213
const DisplayComponent = ({result}) => <div>loading: {result.nested.loading.toString()}, item: {result.nested.item && result.nested.item.id}</div>
210214

211-
const Component = compose(
215+
const Component = compose<any, {}>(
212216
WrappedComponent => class extends React.Component<any, any> {
213217
state = {loading: true, item: null}
214218

@@ -228,19 +232,21 @@ describe('withSpinner', () => {
228232
// withSpinner(),
229233
)(DisplayComponent)
230234

231-
const wrapper = mount(<Component />)
235+
let wrapper = mount(<Component />)
232236

233237
// Should not display a Spinner
234238
expect(wrapper.html()).toBeNull()
235239

236240
// Run timer to 100 ms since withSpinner timeout defaults to 100 ms
237241
jest.runTimersToTime(100)
242+
wrapper = wrapper.update()
238243
// ProgressBar should now be found
239244
expect(wrapper.find(Loading)).toHaveLength(1)
240245
expect(wrapper.find(DisplayComponent)).toHaveLength(0)
241246

242247
// Run timer to 1000 ms for our own timeout
243248
jest.runTimersToTime(1000)
249+
wrapper = wrapper.update()
244250
// DisplayComponent should be found
245251
expect(wrapper.find(DisplayComponent)).toHaveLength(1)
246252
expect(wrapper.find(Loading)).toHaveLength(0)
@@ -251,7 +257,7 @@ describe('withSpinner', () => {
251257
const EmptyComponent = () => <span>No data...</span>
252258

253259
const Component = compose(
254-
WrappedComponent => props => <WrappedComponent {...props} data={{loading: false, value: {}}} />,
260+
defaultProps({data: {loading: false, value: {}}}),
255261
withSpinner({spinnerComponent: Loading, emptyComponent: EmptyComponent, prop: ['data', 'value']}),
256262
)(null)
257263

0 commit comments

Comments
 (0)