UNPKG

@applicaster/zapp-react-native-ui-components

Version:

Applicaster Zapp React Native ui components for the Quick Brick App

118 lines (100 loc) 2.85 kB
import * as React from "react"; import { View } from "react-native"; import { render } from "@testing-library/react-native"; import { CellRendererResolver } from "../"; jest.mock("../../default-cell-renderer", () => { const View = jest.requireActual("react-native").View; return jest.fn((prop) => <View whoAmI="default renderer" someProp={prop} />); }); const component = { styles: { cell_plugin_configuration_id: "ABCDE-123456", }, }; const plugins = [ { identifier: "custom_renderer_plugin", module: jest.fn((prop) => <View someProp={prop} />), }, ]; const styles = {}; const cellStyles = { "ABCDE-123456": { plugin_identifier: "custom_renderer_plugin", configuration: {}, }, "FGHIJ-123456": { plugin_identifier: "unknown_plugin", configuration: {}, }, }; describe("CellRendererResolver", () => { const getResult = ({ component, plugins, styles, cellStyles }) => CellRendererResolver({ component, plugins, styles, cellStyles, }); describe("with a default renderer plugin", () => { it("renders correctly", () => { const { UNSAFE_root } = render( getResult({ component, plugins, styles, cellStyles, }) ); expect(UNSAFE_root).toBeDefined(); }); it("returns default plugin if component has no cell_plugin_configuration_id", () => { const { UNSAFE_getByProps } = render( getResult({ component: {}, plugins, styles, cellStyles, }) ); expect(UNSAFE_getByProps({ whoAmI: "default renderer" })).toBeTruthy(); }); it("returns default plugin if requested cell plugin configuration does not exist", () => { const { UNSAFE_getByProps } = render( getResult({ component: { styles: { cell_plugin_configuration_id: "wrong-id" } }, plugins, styles, cellStyles, }) ); expect(UNSAFE_getByProps({ whoAmI: "default renderer" })).toBeTruthy(); }); it("returns default plugin if cellStyles store is empty", () => { const { UNSAFE_getByProps } = render( getResult({ component, plugins, styles, cellStyles: {}, }) ); expect(UNSAFE_getByProps({ whoAmI: "default renderer" })).toBeTruthy(); }); it("returns null if requested renderer plugin does not exist", () => { const { UNSAFE_getByProps } = render( getResult({ component: { styles: { cell_plugin_configuration_id: "FGHIJ-123456", }, }, plugins, styles, cellStyles, }) ); expect(UNSAFE_getByProps({ whoAmI: "default renderer" })).toBeTruthy(); }); }); });