UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

73 lines (59 loc) 2.04 kB
jest.mock("react", () => ({ ...jest.requireActual("react"), createContext: jest.fn(() => ({ Provider: jest.fn(), Consumer: jest.fn(), })), })); const { createContext } = require("../index"); const mockedProvider = jest.fn(); const mockedWithConsumer = jest.fn(); const mockedWithProvider = jest.fn(); jest.mock("../provider", () => ({ createProvider: jest.fn(() => mockedProvider), })); jest.mock("../withConsumer", () => ({ createWithConsumerDecorator: jest.fn(() => mockedWithConsumer), })); jest.mock("../withProvider", () => ({ createWithProviderDecorator: jest.fn(() => mockedWithProvider), })); const initialContext = { foo: "bar" }; describe("createContext - when React has the new context API", () => { const React = require("react"); const { createProvider } = require("../provider"); const { createWithConsumerDecorator } = require("../withConsumer"); const { createWithProviderDecorator } = require("../withProvider"); const Context = createContext(initialContext); it("uses the react API", () => { expect(React.createContext).toHaveBeenCalledWith( expect.objectContaining({ foo: "bar", setFoo: expect.any(Function), }) ); }); it("creates the provider component", () => { expect(createProvider).toHaveBeenCalledWith( expect.objectContaining({ ReactContext: expect.objectContaining({ Provider: expect.any(Function), Consumer: expect.any(Function), }), initialContext, contextPropertiesNames: ["foo"], contextSettersNames: ["setFoo"], stateValidator: expect.any(Function), }) ); }); it("creates the consumer decorator", () => { expect(createWithConsumerDecorator).toHaveBeenCalledWith(Context.Consumer); }); it("creates the provider decorator", () => { expect(createWithProviderDecorator).toHaveBeenCalledWith(Context.Provider); }); it("returns the components and the decorators", () => { expect(Context).toMatchSnapshot(); }); });