@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
84 lines (65 loc) • 2.35 kB
JavaScript
import * as React from "react";
import { renderHook, cleanup } from "@testing-library/react-hooks";
import { NetworkStatusContext } from "@applicaster/zapp-react-native-ui-components/Contexts/NetworkStatusContext";
const MockNetInfo = {
type: "none",
details: {},
isInternetReachable: false,
isConnected: false,
};
const { useConnectionInfo } = require("../");
describe("useConnectionInfo", () => {
const wrapper = {
// eslint-disable-next-line react/prop-types,react/display-name
wrapper: ({ children }) => (
<NetworkStatusContext.Provider value={MockNetInfo}>
{children}
</NetworkStatusContext.Provider>
),
};
it("renders", () => {
const { result } = renderHook(() => useConnectionInfo(), wrapper);
expect(result).toBeDefined();
cleanup();
});
it("it returns connection type", () => {
const {
result: { current },
} = renderHook(() => useConnectionInfo(), wrapper);
expect(current.type).toEqual(MockNetInfo.type);
cleanup();
});
it("Returns true if connection isConnected and isInternetReachable are true and justOnlineStatus is set", () => {
MockNetInfo.isConnected = true;
MockNetInfo.isInternetReachable = true;
const {
result: { current },
} = renderHook(() => useConnectionInfo(true), wrapper);
expect(current).toEqual(true);
});
it("Returns false if isConnected and isInternetReachable are false and justOnlineStatus is set", () => {
MockNetInfo.isConnected = false;
MockNetInfo.isInternetReachable = false;
MockNetInfo.details = {};
const {
result: { current },
} = renderHook(() => useConnectionInfo(true), wrapper);
expect(current).toEqual(false);
});
it("Returns true if isConntected and isInterneetReachable are null", () => {
MockNetInfo.isConnected = null;
MockNetInfo.isInternetReachable = null;
const {
result: { current },
} = renderHook(() => useConnectionInfo(true), wrapper);
expect(current).toEqual(true);
});
it("Returns true if isConntected and isInterneetReachable are undefined", () => {
MockNetInfo.isConnected = undefined;
MockNetInfo.isInternetReachable = undefined;
const {
result: { current },
} = renderHook(() => useConnectionInfo(true), wrapper);
expect(current).toEqual(true);
});
});