30 lines
784 B
TypeScript
30 lines
784 B
TypeScript
import { act, fireEvent, renderHook } from '@testing-library/react';
|
|
import { useNavigatorOnline } from './use-navigator-online';
|
|
|
|
const setup = () => {
|
|
return renderHook(() => useNavigatorOnline());
|
|
};
|
|
|
|
const turnOn = () => {
|
|
jest.spyOn(window.navigator, 'onLine', 'get').mockReturnValue(true);
|
|
fireEvent(window, new Event('online'));
|
|
};
|
|
|
|
const turnOff = () => {
|
|
jest.spyOn(window.navigator, 'onLine', 'get').mockReturnValue(false);
|
|
fireEvent(window, new Event('offline'));
|
|
};
|
|
|
|
describe('useNavigatorOnline', () => {
|
|
it('returns true if connected and false if not', () => {
|
|
const { result } = setup();
|
|
expect(result.current).toBe(true);
|
|
|
|
act(turnOff);
|
|
expect(result.current).toBe(false);
|
|
|
|
act(turnOn);
|
|
expect(result.current).toBe(true);
|
|
});
|
|
});
|