UNPKG

react-native-reanimated-carousel

Version:

Simple carousel component.fully implemented using Reanimated 2.Infinitely scrolling, very smooth.

2 lines 8.82 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _reactNative=require("@testing-library/react-native");var _react=_interopRequireDefault(require("react"));var _reactNative2=require("react-native");var _index=require("./index");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/store/index.test.tsx";jest.mock("react-native-reanimated",function(){return{useSharedValue:jest.fn(function(initialValue){return{value:initialValue};})};});describe("GlobalStateProvider",function(){var mockProps={width:300,height:200,data:[1,2,3],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Item"});}};var mockCommon={size:300,validLength:3};var mockValue={props:mockProps,common:mockCommon};it("should render children correctly",function(){var _render=(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test Child"})})),getByText=_render.getByText;expect(getByText("Test Child")).toBeTruthy();});it("should provide context value with layout methods",function(){var contextValue;var TestComponent=function TestComponent(){contextValue=_react.default.useContext(_index.GlobalStateContext);return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(contextValue).toHaveProperty("props");expect(contextValue).toHaveProperty("common");expect(contextValue).toHaveProperty("layout");expect(contextValue.layout).toHaveProperty("containerSize");expect(contextValue.layout).toHaveProperty("itemDimensions");expect(contextValue.layout).toHaveProperty("updateItemDimensions");expect(contextValue.layout).toHaveProperty("updateContainerSize");});it("should initialize containerSize with default values",function(){var contextValue;var TestComponent=function TestComponent(){contextValue=_react.default.useContext(_index.GlobalStateContext);return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(contextValue.layout.containerSize.value).toEqual({width:0,height:0});});it("should initialize itemDimensions with empty object",function(){var contextValue;var TestComponent=function TestComponent(){contextValue=_react.default.useContext(_index.GlobalStateContext);return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(contextValue.layout.itemDimensions.value).toEqual({});});it("should provide updateItemDimensions function",function(){var contextValue;var TestComponent=function TestComponent(){contextValue=_react.default.useContext(_index.GlobalStateContext);return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(typeof contextValue.layout.updateItemDimensions).toBe("function");contextValue.layout.updateItemDimensions(0,{width:100,height:50});expect(contextValue.layout.itemDimensions.value).toEqual({0:{width:100,height:50}});});it("should provide updateContainerSize function",function(){var contextValue;var TestComponent=function TestComponent(){contextValue=_react.default.useContext(_index.GlobalStateContext);return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(typeof contextValue.layout.updateContainerSize).toBe("function");contextValue.layout.updateContainerSize({width:400,height:300});expect(contextValue.layout.containerSize.value).toEqual({width:400,height:300});});it("should merge props and common with layout",function(){var contextValue;var TestComponent=function TestComponent(){contextValue=_react.default.useContext(_index.GlobalStateContext);return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(contextValue.props).toEqual(mockProps);expect(contextValue.common).toEqual(mockCommon);});it("should handle multiple children",function(){var _render2=(0,_reactNative.render)((0,_jsxRuntime.jsxs)(_index.GlobalStateProvider,{value:mockValue,children:[(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"First Child"}),(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Second Child"})]})),getByText=_render2.getByText;expect(getByText("First Child")).toBeTruthy();expect(getByText("Second Child")).toBeTruthy();});it("should handle updateItemDimensions with multiple items",function(){var contextValue;var TestComponent=function TestComponent(){contextValue=_react.default.useContext(_index.GlobalStateContext);return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));contextValue.layout.updateItemDimensions(0,{width:100,height:50});contextValue.layout.updateItemDimensions(1,{width:120,height:60});contextValue.layout.updateItemDimensions(2,{width:90,height:45});expect(contextValue.layout.itemDimensions.value).toEqual({0:{width:100,height:50},1:{width:120,height:60},2:{width:90,height:45}});});});describe("useGlobalState",function(){var mockValue={props:{width:300,data:[1,2,3],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Item"});}},common:{size:300,validLength:3}};it("should return context value when used within provider",function(){var hookResult;var TestComponent=function TestComponent(){hookResult=(0,_index.useGlobalState)();return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(hookResult).toHaveProperty("props");expect(hookResult).toHaveProperty("common");expect(hookResult).toHaveProperty("layout");});it("should provide expected hook functionality",function(){var hookResult;var TestComponent=function TestComponent(){var context=(0,_index.useGlobalState)();hookResult=context;return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};var mockValue={props:{width:300,data:[1,2,3],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Item"});}},common:{size:300,validLength:3}};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(hookResult).toHaveProperty("props");expect(hookResult).toHaveProperty("common");expect(hookResult).toHaveProperty("layout");});it("should return the same context value as directly accessing context",function(){var hookResult;var contextResult;var TestComponent=function TestComponent(){hookResult=(0,_index.useGlobalState)();contextResult=_react.default.useContext(_index.GlobalStateContext);return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(hookResult).toBe(contextResult);});it("should provide all expected properties",function(){var hookResult;var TestComponent=function TestComponent(){hookResult=(0,_index.useGlobalState)();return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(_index.GlobalStateProvider,{value:mockValue,children:(0,_jsxRuntime.jsx)(TestComponent,{})}));expect(hookResult.props).toEqual(mockValue.props);expect(hookResult.common).toEqual(mockValue.common);expect(hookResult.layout).toHaveProperty("containerSize");expect(hookResult.layout).toHaveProperty("itemDimensions");expect(hookResult.layout).toHaveProperty("updateItemDimensions");expect(hookResult.layout).toHaveProperty("updateContainerSize");});});describe("GlobalStateContext",function(){it("should have default empty context value",function(){var contextValue;var TestComponent=function TestComponent(){contextValue=_react.default.useContext(_index.GlobalStateContext);return(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test"});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(TestComponent,{}));expect(contextValue).toEqual({});});}); //# sourceMappingURL=index.test.js.map