react-native-reanimated-carousel
Version:
Simple carousel component.fully implemented using Reanimated 2.Infinitely scrolling, very smooth.
2 lines • 6.06 kB
JavaScript
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactHooks=require("@testing-library/react-hooks");var _useCommonVariables=require("./useCommonVariables");var input={vertical:false,width:700,height:350,loop:true,enabled:true,testID:"xxx",style:{width:"100%"},autoPlay:false,autoPlayInterval:2000,data:[0,1,2,3],renderItem:function renderItem(){return null;},pagingEnabled:true,defaultIndex:0,autoFillData:true,dataLength:4,rawData:[0,1,2,3],rawDataLength:4,scrollAnimationDuration:500,snapEnabled:true,overscrollEnabled:true};describe("useCommonVariables",function(){it("should return the correct values",(0,_asyncToGenerator2.default)(function*(){var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(input);});expect(hook.result.current.size).toMatchInlineSnapshot("700");expect(hook.result.current.validLength).toMatchInlineSnapshot("3");expect(hook.result.current.handlerOffset.value).toMatchInlineSnapshot("-0");}));it("should handle vertical orientation",function(){var verticalInput=Object.assign({},input,{vertical:true});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(verticalInput);});expect(hook.result.current.size).toBe(350);expect(hook.result.current.validLength).toBe(3);});it("should calculate defaultHandlerOffsetValue correctly with non-zero defaultIndex",function(){var inputWithDefaultIndex=Object.assign({},input,{defaultIndex:2});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(inputWithDefaultIndex);});expect(hook.result.current.handlerOffset.value).toBe(-1400);});it("should use custom defaultScrollOffsetValue when provided",function(){var customOffset={value:-500,addListener:jest.fn(),removeListener:jest.fn(),modify:jest.fn()};var inputWithCustomOffset=Object.assign({},input,{defaultScrollOffsetValue:customOffset});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(inputWithCustomOffset);});expect(hook.result.current.handlerOffset).toBe(customOffset);expect(hook.result.current.handlerOffset.value).toBe(-500);});it("should handle single data item",function(){var singleItemInput=Object.assign({},input,{dataLength:1,data:[0]});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(singleItemInput);});expect(hook.result.current.validLength).toBe(0);});it("should handle zero dataLength",function(){var emptyInput=Object.assign({},input,{dataLength:0,data:[]});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(emptyInput);});expect(hook.result.current.validLength).toBe(-1);});it("should handle negative defaultIndex",function(){var negativeIndexInput=Object.assign({},input,{defaultIndex:-1});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(negativeIndexInput);});expect(hook.result.current.handlerOffset.value).toBe(-700);});it("should handle loop disabled",function(){var noLoopInput=Object.assign({},input,{loop:false});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(noLoopInput);});expect(hook.result.current.size).toBe(700);expect(hook.result.current.validLength).toBe(3);});it("should update when props change",function(){var hook=(0,_reactHooks.renderHook)(function(_ref2){var props=_ref2.props;return(0,_useCommonVariables.useCommonVariables)(props);},{initialProps:{props:input}});expect(hook.result.current.size).toBe(700);var updatedInput=Object.assign({},input,{width:800});hook.rerender({props:updatedInput});expect(hook.result.current.size).toBe(800);});it("should handle dataLength changes",function(){var hook=(0,_reactHooks.renderHook)(function(_ref3){var props=_ref3.props;return(0,_useCommonVariables.useCommonVariables)(props);},{initialProps:{props:input}});expect(hook.result.current.validLength).toBe(3);var updatedInput=Object.assign({},input,{dataLength:6});hook.rerender({props:updatedInput});expect(hook.result.current.validLength).toBe(5);});it("should handle zero size (edge case)",function(){var zeroSizeInput=Object.assign({},input,{width:0});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(zeroSizeInput);});expect(hook.result.current.size).toBe(0);expect(hook.result.current.handlerOffset.value).toBe(-0);});it("should handle large defaultIndex",function(){var largeIndexInput=Object.assign({},input,{defaultIndex:10});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(largeIndexInput);});expect(hook.result.current.handlerOffset.value).toBe(-7000);});it("should handle vertical with zero height",function(){var verticalZeroHeightInput=Object.assign({},input,{vertical:true,height:0});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(verticalZeroHeightInput);});expect(hook.result.current.size).toBe(0);});it("should handle floating point dimensions",function(){var floatInput=Object.assign({},input,{width:700.5,height:350.25});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(floatInput);});expect(hook.result.current.size).toBe(700.5);});it("should calculate validLength correctly for different data lengths",function(){var testCases=[{dataLength:0,expected:-1},{dataLength:1,expected:0},{dataLength:5,expected:4},{dataLength:100,expected:99}];var _loop=function _loop(dataLength,expected){var testInput=Object.assign({},input,{dataLength:dataLength});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(testInput);});expect(hook.result.current.validLength).toBe(expected);};for(var _ref4 of testCases){var dataLength=_ref4.dataLength;var expected=_ref4.expected;_loop(dataLength,expected);}});});
//# sourceMappingURL=useCommonVariables.test.js.map