UNPKG

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

Version:

Applicaster Zapp React Native ui components for the Quick Brick App

118 lines (98 loc) 2.7 kB
import * as React from "react"; import { View } from "react-native"; import { shallow } from "enzyme"; jest.mock("../../default-cell-renderer", () => jest.fn((prop) => <View whoAmI="default renderer" someProp={prop} />) ); const { CellRendererResolver } = require("../index"); 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, }); it("renders correctly", () => { const result = shallow( getResult({ component, plugins, styles, cellStyles }) ); expect(result).toMatchSnapshot(); }); describe("with a default renderer plugin", () => { it("renders correctly", () => { const result = shallow( getResult({ component, plugins, styles, cellStyles, }) ); expect(result).toMatchSnapshot(); }); it("returns default plugin if component has no cell_plugin_configuration_id", () => { const result = getResult({ component: {}, plugins, styles, cellStyles, }); expect(result).toBeDefined(); expect(result.props.whoAmI).toEqual("default renderer"); }); it("returns default plugin if requested cell plugin configuration does not exist", () => { const result = getResult({ component: { styles: { cell_plugin_configuration_id: "wrong-id" } }, plugins, styles, cellStyles, }); expect(result.props.whoAmI).toEqual("default renderer"); }); it("returns default plugin if cellStyles store is empty", () => { const result = getResult({ component, plugins, styles, cellStyles: {}, }); expect(result.props.whoAmI).toEqual("default renderer"); }); it("returns null if requested renderer plugin does not exist", () => { const result = getResult({ component: { styles: { cell_plugin_configuration_id: "FGHIJ-123456", }, }, plugins, styles, cellStyles, }); expect(result.props.whoAmI).toEqual("default renderer"); }); }); });