Skip to content

Commit da63cd9

Browse files
committed
chore: add test case
1 parent 171c5cf commit da63cd9

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

test/use-wake-lock.test.tsx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,3 +205,43 @@ test('useWakeLock reacquires wake lock on page visibility change when `reacquire
205205
expect(result.current.released).toBe(false);
206206
expect(handleError).not.toHaveBeenCalled();
207207
});
208+
209+
test('after releasing, useWakeLock reacquires wake lock on page visibility change when `reacquireOnPageVisible` is true', async () => {
210+
const handleError = jest.fn();
211+
const { result } = renderHook(() => useWakeLock({ reacquireOnPageVisible: true, onError: handleError }));
212+
213+
await act(async () => {
214+
await result.current.request();
215+
});
216+
217+
expect(window.navigator.wakeLock.request).toHaveBeenCalledTimes(1);
218+
expect(result.current.type).toEqual('screen');
219+
expect(result.current.released).toBe(false);
220+
221+
await act(async () => {
222+
await result.current.release();
223+
});
224+
225+
expect(result.current.released).toBe(true);
226+
227+
// Mock document.visibilityState to 'hidden'
228+
Object.defineProperty(document, 'visibilityState', {
229+
value: 'hidden',
230+
configurable: true,
231+
});
232+
document.dispatchEvent(new Event('visibilitychange'));
233+
234+
// Mock document.visibilityState to 'visible'
235+
Object.defineProperty(document, 'visibilityState', {
236+
value: 'visible',
237+
configurable: true,
238+
});
239+
await act(async () => {
240+
document.dispatchEvent(new Event('visibilitychange'));
241+
});
242+
243+
expect(window.navigator.wakeLock.request).toHaveBeenCalledTimes(2);
244+
expect(result.current.type).toEqual('screen');
245+
expect(result.current.released).toBe(false);
246+
expect(handleError).not.toHaveBeenCalled();
247+
});

0 commit comments

Comments
 (0)