Skip to content

Commit 0aaf07a

Browse files
Lei ChenLei Chen
Lei Chen
authored and
Lei Chen
committed
wrap test with try catch and add tests to native and server
1 parent de67b26 commit 0aaf07a

File tree

3 files changed

+150
-37
lines changed

3 files changed

+150
-37
lines changed

Diff for: src/dom/__tests__/asyncHook.test.ts

+45-37
Original file line numberDiff line numberDiff line change
@@ -100,53 +100,61 @@ describe('async hook tests', () => {
100100

101101
expect(complete).toBe(true)
102102
})
103-
test('should wait for arbitrary expectation to pass when use jest.usedFakeTimers() and advanceTimersByTime() ', async () => {
104-
jest.useFakeTimers()
103+
test('should wait for arbitrary expectation to pass when use jest.usedFakeTimers() and advanceTimersByTime()', async () => {
104+
try {
105+
jest.useFakeTimers()
105106

106-
const { waitFor } = renderHook(() => null)
107+
const { waitFor } = renderHook(() => null)
107108

108-
let actual = 0
109-
const expected = 1
109+
let actual = 0
110+
const expected = 1
110111

111-
setTimeout(() => {
112-
actual = expected
113-
}, 200)
114-
let complete = false
115-
jest.advanceTimersByTime(200)
116-
await waitFor(
117-
() => {
118-
expect(actual).toBe(expected)
119-
complete = true
120-
},
121-
{ timeout: 250, interval: 10 }
122-
)
112+
setTimeout(() => {
113+
actual = expected
114+
}, 200)
115+
let complete = false
116+
jest.advanceTimersByTime(200)
117+
await waitFor(
118+
() => {
119+
expect(actual).toBe(expected)
120+
complete = true
121+
},
122+
{ timeout: 250, interval: 10 }
123+
)
123124

124-
expect(complete).toBe(true)
125-
jest.useRealTimers()
125+
expect(complete).toBe(true)
126+
} catch {
127+
} finally {
128+
jest.useRealTimers()
129+
}
126130
})
127131
test('should wait for arbitrary expectation to pass when use jest.usedFakeTimers() and runOnlyPendingTimers() ', async () => {
128-
jest.useFakeTimers()
132+
try {
133+
jest.useFakeTimers()
129134

130-
const { waitFor } = renderHook(() => null)
135+
const { waitFor } = renderHook(() => null)
131136

132-
let actual = 0
133-
const expected = 1
137+
let actual = 0
138+
const expected = 1
134139

135-
setTimeout(() => {
136-
actual = expected
137-
}, 200)
138-
let complete = false
139-
jest.runOnlyPendingTimers()
140-
await waitFor(
141-
() => {
142-
expect(actual).toBe(expected)
143-
complete = true
144-
},
145-
{ timeout: 250, interval: 10 }
146-
)
140+
setTimeout(() => {
141+
actual = expected
142+
}, 200)
143+
let complete = false
144+
jest.runOnlyPendingTimers()
145+
await waitFor(
146+
() => {
147+
expect(actual).toBe(expected)
148+
complete = true
149+
},
150+
{ timeout: 250, interval: 10 }
151+
)
147152

148-
expect(complete).toBe(true)
149-
jest.useRealTimers()
153+
expect(complete).toBe(true)
154+
} catch {
155+
} finally {
156+
jest.useRealTimers()
157+
}
150158
})
151159

152160
test('should not hang if expectation is already passing', async () => {

Diff for: src/native/__tests__/asyncHook.test.ts

+50
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,56 @@ describe('async hook tests', () => {
100100

101101
expect(complete).toBe(true)
102102
})
103+
test('should wait for arbitrary expectation to pass when use jest.usedFakeTimers() and advanceTimersByTime()', async () => {
104+
try {
105+
jest.useFakeTimers()
106+
const { waitFor } = renderHook(() => null)
107+
108+
let actual = 0
109+
const expected = 1
110+
111+
setTimeout(() => {
112+
actual = expected
113+
}, 200)
114+
115+
let complete = false
116+
jest.advanceTimersByTime(200)
117+
await waitFor(() => {
118+
expect(actual).toBe(expected)
119+
complete = true
120+
})
121+
122+
expect(complete).toBe(true)
123+
} catch {
124+
} finally {
125+
jest.useRealTimers()
126+
}
127+
})
128+
test('should wait for arbitrary expectation to pass when use jest.usedFakeTimers() and runOnlyPendingTimers()', async () => {
129+
try {
130+
jest.useFakeTimers()
131+
const { waitFor } = renderHook(() => null)
132+
133+
let actual = 0
134+
const expected = 1
135+
136+
setTimeout(() => {
137+
actual = expected
138+
}, 200)
139+
140+
let complete = false
141+
jest.runOnlyPendingTimers()
142+
await waitFor(() => {
143+
expect(actual).toBe(expected)
144+
complete = true
145+
})
146+
147+
expect(complete).toBe(true)
148+
} catch {
149+
} finally {
150+
jest.useRealTimers()
151+
}
152+
})
103153

104154
test('should not hang if expectation is already passing', async () => {
105155
const { result, waitFor } = renderHook(() => useSequence(['first', 'second']))

Diff for: src/server/__tests__/asyncHook.test.ts

+55
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,61 @@ describe('async hook tests', () => {
128128

129129
expect(complete).toBe(true)
130130
})
131+
test('should wait for arbitrary expectation to pass when use jest.usedFakeTimers() and advanceTimersByTime()', async () => {
132+
try {
133+
jest.useFakeTimers()
134+
const { waitFor, hydrate } = renderHook(() => null)
135+
136+
hydrate()
137+
138+
let actual = 0
139+
const expected = 1
140+
141+
setTimeout(() => {
142+
actual = expected
143+
}, 200)
144+
145+
let complete = false
146+
jest.advanceTimersByTime(200)
147+
await waitFor(() => {
148+
expect(actual).toBe(expected)
149+
complete = true
150+
})
151+
152+
expect(complete).toBe(true)
153+
} catch {
154+
} finally {
155+
jest.useRealTimers()
156+
}
157+
})
158+
test('should wait for arbitrary expectation to pass when use jest.usedFakeTimers() and runOnlyPendingTimers()', async () => {
159+
try {
160+
jest.useFakeTimers()
161+
162+
const { waitFor, hydrate } = renderHook(() => null)
163+
164+
hydrate()
165+
166+
let actual = 0
167+
const expected = 1
168+
169+
setTimeout(() => {
170+
actual = expected
171+
}, 200)
172+
173+
let complete = false
174+
jest.runOnlyPendingTimers()
175+
await waitFor(() => {
176+
expect(actual).toBe(expected)
177+
complete = true
178+
})
179+
180+
expect(complete).toBe(true)
181+
} catch {
182+
} finally {
183+
jest.useRealTimers()
184+
}
185+
})
131186

132187
test('should not hang if expectation is already passing', async () => {
133188
const { result, hydrate, waitFor } = renderHook(() => useSequence(['first', 'second']))

0 commit comments

Comments
 (0)