react-native-reanimated-carousel
Version:
Simple carousel component.fully implemented using Reanimated 2.Infinitely scrolling, very smooth.
2 lines • 4.02 kB
JavaScript
var _reactNativeReanimated=require("react-native-reanimated");var _reactHooks=require("@testing-library/react-hooks");var _useOnProgressChange=require("./useOnProgressChange");jest.mock("react-native-reanimated",function(){var reactionCallback=null;return{useSharedValue:jest.fn(function(initialValue){return{value:initialValue};}),useAnimatedReaction:jest.fn(function(deps,cb){reactionCallback=cb;var depsResult=deps();cb(depsResult);return function(){reactionCallback=null;};}),runOnJS:jest.fn(function(fn){return fn;}),Easing:{bezier:function bezier(){return{factory:function factory(){return 0;}};}},__triggerReaction:function __triggerReaction(value){if(reactionCallback)reactionCallback(value);}};});jest.mock("../utils/computed-with-auto-fill-data",function(){return{computedOffsetXValueWithAutoFillData:jest.fn(function(_ref){var value=_ref.value;return value;})};});describe("useOnProgressChange",function(){var mockOffsetX=(0,_reactNativeReanimated.useSharedValue)(0);var mockOnProgressChange=jest.fn();var _jest$requireMock=jest.requireMock("react-native-reanimated"),__triggerReaction=_jest$requireMock.__triggerReaction;beforeEach(function(){jest.clearAllMocks();mockOffsetX.value=0;});it("should handle progress change with function callback",function(){(0,_reactHooks.renderHook)(function(){return(0,_useOnProgressChange.useOnProgressChange)({size:300,autoFillData:false,loop:false,offsetX:mockOffsetX,rawDataLength:5,onProgressChange:mockOnProgressChange});});mockOffsetX.value=-300;__triggerReaction(mockOffsetX.value);expect(mockOnProgressChange).toHaveBeenCalledWith(-300,1);});it("should handle progress change with shared value",function(){var progressValue=(0,_reactNativeReanimated.useSharedValue)(0);(0,_reactHooks.renderHook)(function(){return(0,_useOnProgressChange.useOnProgressChange)({size:300,autoFillData:false,loop:false,offsetX:mockOffsetX,rawDataLength:5,onProgressChange:progressValue});});mockOffsetX.value=-300;__triggerReaction(mockOffsetX.value);expect(progressValue.value).toBe(1);});it("should handle loop mode",function(){(0,_reactHooks.renderHook)(function(){return(0,_useOnProgressChange.useOnProgressChange)({size:300,autoFillData:false,loop:true,offsetX:mockOffsetX,rawDataLength:5,onProgressChange:mockOnProgressChange});});mockOffsetX.value=-1500;__triggerReaction(mockOffsetX.value);expect(mockOnProgressChange).toHaveBeenCalledWith(-1500,5);});it("should handle autoFillData mode",function(){(0,_reactHooks.renderHook)(function(){return(0,_useOnProgressChange.useOnProgressChange)({size:300,autoFillData:true,loop:false,offsetX:mockOffsetX,rawDataLength:3,onProgressChange:mockOnProgressChange});});mockOffsetX.value=-300;__triggerReaction(mockOffsetX.value);expect(mockOnProgressChange).toHaveBeenCalledWith(-300,1);});it("should clamp values when not in loop mode",function(){(0,_reactHooks.renderHook)(function(){return(0,_useOnProgressChange.useOnProgressChange)({size:300,autoFillData:false,loop:false,offsetX:mockOffsetX,rawDataLength:3,onProgressChange:mockOnProgressChange});});mockOffsetX.value=300;__triggerReaction(mockOffsetX.value);expect(mockOnProgressChange).toHaveBeenCalledWith(0,0);mockOffsetX.value=-900;__triggerReaction(mockOffsetX.value);expect(mockOnProgressChange).toHaveBeenCalledWith(-600,2);});it("should handle positive offset values",function(){(0,_reactHooks.renderHook)(function(){return(0,_useOnProgressChange.useOnProgressChange)({size:300,autoFillData:false,loop:true,offsetX:mockOffsetX,rawDataLength:5,onProgressChange:mockOnProgressChange});});mockOffsetX.value=300;__triggerReaction(mockOffsetX.value);expect(mockOnProgressChange).toHaveBeenCalledWith(300,4);});it("should not call onProgressChange if not provided",function(){(0,_reactHooks.renderHook)(function(){return(0,_useOnProgressChange.useOnProgressChange)({size:300,autoFillData:false,loop:false,offsetX:mockOffsetX,rawDataLength:5});});mockOffsetX.value=-300;expect(mockOnProgressChange).not.toHaveBeenCalled();});});
//# sourceMappingURL=useOnProgressChange.test.js.map