UNPKG

react-native-reanimated-carousel

Version:

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

9 lines 23.1 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _reactNativeGestureHandler=require("react-native-gesture-handler");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _reactNative=require("@testing-library/react-native");var _jestUtils=require("react-native-gesture-handler/jest-utils");var _Carousel=_interopRequireDefault(require("./Carousel"));var _jsxRuntime=require("react/jsx-runtime");var _excluded=["renderItem"];var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Carousel.test.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}jest.setTimeout(1000*12);var mockPan=jest.fn();var realPan=_reactNativeGestureHandler.Gesture.Pan();var gestureTestId="rnrc-gesture-handler";jest.spyOn(_reactNativeGestureHandler.Gesture,"Pan").mockImplementation(function(){mockPan();return realPan.withTestId(gestureTestId);});var _worklet_7652950458501_init_data={code:"function anonymous(){const{progress,progressAnimVal}=this.__closure;progress.current=progressAnimVal.value;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Carousel.test.tsx",sourceMap:"{\"version\":3,\"mappings\":\"AAiFsB,QAAAA,UAAA,EAAM,gDACpBC,QAAQ,CAACC,OAATD,CAAmBE,eAAe,CAACC,KAAnCH,CADc\",\"names\":[\"anonymous\",\"progress\",\"current\",\"progressAnimVal\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Carousel.test.tsx\"]}",version:"3.10.1"};var _worklet_3861612759563_init_data={code:"function anonymous(value,index){const{indexes,interpolate,slideWidth}=this.__closure;indexes[index]=index;const zIndex=interpolate(value,[-1,0,1],[10,20,30]);const translateX=interpolate(value,[-2,0,1],[-slideWidth,0,slideWidth]);return{transform:[{translateX:translateX}],zIndex:zIndex};}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Carousel.test.tsx",sourceMap:"{\"version\":3,\"mappings\":\"AA6cyB,QAACA,UAAD,CAAgBC,KAAhB,CAAkCA,KAAlC,CAAkC,sDAGjDC,OAAO,CAACD,KAAD,CAAPC,CAAiBD,KAAjBC,CAEA,KAAMC,OAAM,CAAGC,WAAW,CAACJ,KAAD,CAAQ,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAAR,CAAoB,CAAC,EAAD,CAAK,EAAL,CAAS,EAAT,CAApB,CAA1B,CACA,KAAMK,WAAU,CAAGD,WAAW,CAACJ,KAAD,CAAQ,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAAR,CAAoB,CAAC,CAACM,UAAF,CAAc,CAAd,CAAiBA,UAAjB,CAApB,CAA9B,CAEA,MAAO,CACLC,SAAS,CAAE,CAAC,CAAEF,qBAAF,CAAD,CADN,CAELF,aAFK,CAAP,CARe\",\"names\":[\"value\",\"index\",\"indexes\",\"zIndex\",\"interpolate\",\"translateX\",\"slideWidth\",\"transform\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Carousel.test.tsx\"]}",version:"3.10.1"};describe("Test the real swipe behavior of Carousel to ensure it's working as expected",function(){var slideWidth=300;var slideHeight=200;var slideCount=4;beforeEach(function(){mockPan.mockClear();});var createMockData=function createMockData(){var length=arguments.length>0&&arguments[0]!==undefined?arguments[0]:slideCount;return Array.from({length:length},function(_,i){return`Item ${i+1}`;});};var createDefaultProps=function createDefaultProps(progressAnimVal){var customProps=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var baseProps={width:slideWidth,height:slideHeight,data:createMockData(),defaultIndex:0,testID:"carousel-swipe-container",onProgressChange:progressAnimVal};return Object.assign({},baseProps,customProps);};var createCarousel=function createCarousel(progress){var Wrapper=_react.default.forwardRef(function(customProps,ref){var progressAnimVal=(0,_reactNativeReanimated.useSharedValue)(progress.current);var defaultRenderItem=function defaultRenderItem(_ref){var item=_ref.item,index=_ref.index;return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{testID:`carousel-item-${index}`,style:{width:slideWidth,height:slideHeight,flex:1},children:item});};var _createDefaultProps=createDefaultProps(progressAnimVal,customProps),_createDefaultProps$r=_createDefaultProps.renderItem,renderItem=_createDefaultProps$r===void 0?defaultRenderItem:_createDefaultProps$r,defaultProps=(0,_objectWithoutProperties2.default)(_createDefaultProps,_excluded);(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-3,-27];var anonymous=function anonymous(){progress.current=progressAnimVal.value;};anonymous.__closure={progress:progress,progressAnimVal:progressAnimVal};anonymous.__workletHash=7652950458501;anonymous.__initData=_worklet_7652950458501_init_data;anonymous.__stackDetails=_e;return anonymous;}(),[progressAnimVal]);return(0,_jsxRuntime.jsx)(_Carousel.default,Object.assign({},defaultProps,{renderItem:renderItem,ref:ref}));});return Wrapper;};var swipeToLeftOnce=function swipeToLeftOnce(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _options$itemWidth=options.itemWidth,itemWidth=_options$itemWidth===void 0?slideWidth:_options$itemWidth,_options$velocityX=options.velocityX,velocityX=_options$velocityX===void 0?-slideWidth:_options$velocityX;(0,_jestUtils.fireGestureHandler)((0,_jestUtils.getByGestureTestId)(gestureTestId),[{state:_reactNativeGestureHandler.State.BEGAN,translationX:0,velocityX:velocityX},{state:_reactNativeGestureHandler.State.ACTIVE,translationX:-itemWidth*0.25,velocityX:velocityX},{state:_reactNativeGestureHandler.State.ACTIVE,translationX:-itemWidth*0.5,velocityX:velocityX},{state:_reactNativeGestureHandler.State.ACTIVE,translationX:-itemWidth*0.75,velocityX:velocityX},{state:_reactNativeGestureHandler.State.END,translationX:-itemWidth,velocityX:velocityX}]);};var verifyInitialRender=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(getByTestId){yield(0,_reactNative.waitFor)(function(){var item=getByTestId("carousel-item-0");expect(item).toBeTruthy();},{timeout:1000*3});});return function verifyInitialRender(_x){return _ref2.apply(this,arguments);};}();it("`data` prop: should render correctly",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);var _render=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{data:createMockData(6)})),getByTestId=_render.getByTestId;yield verifyInitialRender(getByTestId);expect(getByTestId("carousel-item-0")).toBeTruthy();expect(getByTestId("carousel-item-1")).toBeTruthy();expect(getByTestId("carousel-item-2")).toBeTruthy();expect(getByTestId("carousel-item-3")).toBeTruthy();expect(getByTestId("carousel-item-4")).toBeTruthy();expect(getByTestId("carousel-item-5")).toBeTruthy();}));it("`renderItem` prop: should render items correctly",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);var _render2=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{renderItem:function renderItem(_ref5){var item=_ref5.item,index=_ref5.index;return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.Text,{testID:`item-${index}`,children:item});}})),getByTestId=_render2.getByTestId;yield(0,_reactNative.waitFor)(function(){return expect(getByTestId("item-0")).toBeTruthy();});}));it("should swipe to the left",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);var _render3=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{})),getByTestId=_render3.getByTestId;yield verifyInitialRender(getByTestId);var _loop=function*_loop(i){swipeToLeftOnce();yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(i%slideCount);});};for(var i=1;i<=slideCount;i++){yield*_loop(i);}}));it("`loop` prop: should swipe back to the first item when loop is true",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);{var _render4=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{loop:true})),getByTestId=_render4.getByTestId;yield verifyInitialRender(getByTestId);var _loop2=function*_loop2(i){swipeToLeftOnce();yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(i%slideCount);});};for(var i=1;i<=slideCount;i++){yield*_loop2(i);}}{var _render5=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{loop:false})),_getByTestId=_render5.getByTestId;yield verifyInitialRender(_getByTestId);(0,_jestUtils.fireGestureHandler)((0,_jestUtils.getByGestureTestId)(gestureTestId),[{state:_reactNativeGestureHandler.State.BEGAN,translationX:0},{state:_reactNativeGestureHandler.State.ACTIVE,translationX:slideWidth*0.25},{state:_reactNativeGestureHandler.State.END,translationX:slideWidth*0.5}]);yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(0);});}}));it("`onSnapToItem` prop: should call the onSnapToItem callback",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var onSnapToItem=jest.fn();var Wrapper=createCarousel(progress);var _render6=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{onSnapToItem:onSnapToItem})),getByTestId=_render6.getByTestId;yield verifyInitialRender(getByTestId);expect(onSnapToItem).not.toHaveBeenCalled();swipeToLeftOnce();yield(0,_reactNative.waitFor)(function(){return expect(onSnapToItem).toHaveBeenCalledWith(1);});swipeToLeftOnce();yield(0,_reactNative.waitFor)(function(){return expect(onSnapToItem).toHaveBeenCalledWith(2);});swipeToLeftOnce();yield(0,_reactNative.waitFor)(function(){return expect(onSnapToItem).toHaveBeenCalledWith(3);});}));it("`autoPlay` prop: should swipe automatically when autoPlay is true",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);var _render7=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{autoPlay:true,autoPlayInterval:300})),getByTestId=_render7.getByTestId;yield verifyInitialRender(getByTestId);yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(1);});yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(2);});yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(3);});yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(0);});}));it("`autoPlayReverse` prop: should swipe automatically in reverse when autoPlayReverse is true",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);var _render8=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{autoPlay:true,autoPlayReverse:true})),getByTestId=_render8.getByTestId;yield verifyInitialRender(getByTestId);yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(3);});yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(2);});yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(1);});yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(0);});}));it("`defaultIndex` prop: should render the correct item with the defaultIndex props",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);var _render9=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{defaultIndex:2})),getByTestId=_render9.getByTestId;yield verifyInitialRender(getByTestId);yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(2);});}));it("`defaultScrollOffsetValue` prop: should render the correct progress value with the defaultScrollOffsetValue props",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);var WrapperWithCustomProps=function WrapperWithCustomProps(){var defaultScrollOffsetValue=(0,_reactNativeReanimated.useSharedValue)(-slideWidth);return(0,_jsxRuntime.jsx)(Wrapper,{defaultScrollOffsetValue:defaultScrollOffsetValue});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(WrapperWithCustomProps,{}));yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(1);});}));it("`ref` prop: should handle the ref props",(0,_asyncToGenerator2.default)(function*(){var Wrapper=createCarousel({current:0});var fn=jest.fn();var WrapperWithCustomProps=function WrapperWithCustomProps(_ref14){var refSetupCallback=_ref14.refSetupCallback;return(0,_jsxRuntime.jsx)(Wrapper,{ref:function(_ref15){function ref(_x2){return _ref15.apply(this,arguments);}ref.toString=function(){return _ref15.toString();};return ref;}(function(ref){refSetupCallback(!!ref);})});};(0,_reactNative.render)((0,_jsxRuntime.jsx)(WrapperWithCustomProps,{refSetupCallback:fn}));yield(0,_reactNative.waitFor)(function(){return expect(fn).toHaveBeenCalledWith(true);});}));it("`autoFillData` prop: should auto fill data array to allow loop playback when the loop props is true",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);{var _render10=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{autoFillData:true,data:createMockData(1)})),getAllByTestId=_render10.getAllByTestId;yield(0,_reactNative.waitFor)(function(){expect(getAllByTestId("carousel-item-0").length).toBe(3);});}{var _render11=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{autoFillData:false,data:createMockData(1)})),_getAllByTestId=_render11.getAllByTestId;yield(0,_reactNative.waitFor)(function(){expect(_getAllByTestId("carousel-item-0").length).toBe(1);});}}));it("`pagingEnabled` prop: should swipe to the next item when pagingEnabled is true",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);{var _render12=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{pagingEnabled:false})),getByTestId=_render12.getByTestId;yield verifyInitialRender(getByTestId);(0,_jestUtils.fireGestureHandler)((0,_jestUtils.getByGestureTestId)(gestureTestId),[{state:_reactNativeGestureHandler.State.BEGAN,translationX:0,velocityX:-5},{state:_reactNativeGestureHandler.State.ACTIVE,translationX:-slideWidth*0.15,velocityX:-5},{state:_reactNativeGestureHandler.State.END,translationX:-slideWidth*0.25,velocityX:-5}]);yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(0);});}{var _render13=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{pagingEnabled:true})),_getByTestId2=_render13.getByTestId;yield verifyInitialRender(_getByTestId2);(0,_jestUtils.fireGestureHandler)((0,_jestUtils.getByGestureTestId)(gestureTestId),[{state:_reactNativeGestureHandler.State.BEGAN,translationX:0,velocityX:-1000},{state:_reactNativeGestureHandler.State.ACTIVE,translationX:-slideWidth*0.15,velocityX:-1000},{state:_reactNativeGestureHandler.State.END,translationX:-slideWidth*0.25,velocityX:-1000}]);yield(0,_reactNative.waitFor)(function(){return expect(progress.current).toBe(1);});}}));it("`onConfigurePanGesture` prop: should call the onConfigurePanGesture callback",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var Wrapper=createCarousel(progress);var _pan=null;(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{onConfigurePanGesture:function onConfigurePanGesture(pan){_pan=pan;return pan;}}));var _render14=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{pagingEnabled:false})),getByTestId=_render14.getByTestId;yield verifyInitialRender(getByTestId);expect(_pan).not.toBeNull();}));it("`onScrollStart` prop: should call the onScrollStart callback",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var startedProgress;var onScrollStart=function onScrollStart(){if(typeof startedProgress==="number")return;startedProgress=progress.current;};var Wrapper=createCarousel(progress);var _render15=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{onScrollStart:onScrollStart})),getByTestId=_render15.getByTestId;yield verifyInitialRender(getByTestId);(0,_jestUtils.fireGestureHandler)((0,_jestUtils.getByGestureTestId)(gestureTestId),[{state:_reactNativeGestureHandler.State.BEGAN,translationX:0,velocityX:1000},{state:_reactNativeGestureHandler.State.ACTIVE,translationX:slideWidth/2,velocityX:1000},{state:_reactNativeGestureHandler.State.END,translationX:slideWidth,velocityX:1000}]);yield(0,_reactNative.waitFor)(function(){expect(startedProgress).toBe(0);});}));it("`onScrollEnd` prop: should call the onScrollEnd callback",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var endedProgress;var onScrollEnd=jest.fn(function(){if(typeof endedProgress==="number")return;endedProgress=progress.current;});var Wrapper=createCarousel(progress);var _render16=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{onScrollEnd:onScrollEnd})),getByTestId=_render16.getByTestId;yield verifyInitialRender(getByTestId);(0,_jestUtils.fireGestureHandler)((0,_jestUtils.getByGestureTestId)(gestureTestId),[{state:_reactNativeGestureHandler.State.BEGAN,translationX:0,velocityX:1000},{state:_reactNativeGestureHandler.State.ACTIVE,translationX:slideWidth/2,velocityX:1000},{state:_reactNativeGestureHandler.State.END,translationX:slideWidth,velocityX:1000}]);yield(0,_reactNative.waitFor)(function(){expect(endedProgress).toBe(3);expect(onScrollEnd).toHaveBeenCalledWith(3);});}));it("`onProgressChange` prop: should call the onProgressChange callback",(0,_asyncToGenerator2.default)(function*(){var offsetProgressVal={current:0};var absoluteProgressVal={current:0};var onProgressChange=jest.fn(function(offsetProgress,absoluteProgress){offsetProgressVal.current=offsetProgress;absoluteProgressVal.current=absoluteProgress;});var Wrapper=createCarousel(offsetProgressVal);var _render17=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{onProgressChange:onProgressChange,defaultIndex:0})),getByTestId=_render17.getByTestId;yield verifyInitialRender(getByTestId);yield(0,_reactNative.waitFor)(function(){expect(offsetProgressVal.current).toBe(0);expect(absoluteProgressVal.current).toBe(0);});(0,_jestUtils.fireGestureHandler)((0,_jestUtils.getByGestureTestId)(gestureTestId),[{state:_reactNativeGestureHandler.State.BEGAN,translationX:0,velocityX:-1000},{state:_reactNativeGestureHandler.State.ACTIVE,translationX:-slideWidth/2,velocityX:-1000},{state:_reactNativeGestureHandler.State.END,translationX:-slideWidth,velocityX:-1000}]);yield(0,_reactNative.waitFor)(function(){expect(offsetProgressVal.current).toBe(-slideWidth);expect(absoluteProgressVal.current).toBe(1);});}));it("`fixedDirection` prop: should swipe to the correct direction when fixedDirection is positive",(0,_asyncToGenerator2.default)(function*(){{var progress={current:0};var Wrapper=createCarousel(progress);var _render18=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{fixedDirection:"positive"})),getByTestId=_render18.getByTestId;yield verifyInitialRender(getByTestId);swipeToLeftOnce({velocityX:slideWidth});yield(0,_reactNative.waitFor)(function(){expect(progress.current).toBe(3);});}{var _progress={current:0};var _Wrapper=createCarousel(_progress);var _render19=(0,_reactNative.render)((0,_jsxRuntime.jsx)(_Wrapper,{fixedDirection:"negative"})),_getByTestId3=_render19.getByTestId;yield verifyInitialRender(_getByTestId3);swipeToLeftOnce({velocityX:-slideWidth});yield(0,_reactNative.waitFor)(function(){return expect(_progress.current).toBe(1);});}}));it("`customAnimation` prop: should apply the custom animation",(0,_asyncToGenerator2.default)(function*(){var progress={current:0};var indexes={};var Wrapper=createCarousel(progress);var _render20=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Wrapper,{customAnimation:function(){var _e=[new global.Error(),-4,-27];var anonymous=function anonymous(value,index){indexes[index]=index;var zIndex=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[10,20,30]);var translateX=(0,_reactNativeReanimated.interpolate)(value,[-2,0,1],[-slideWidth,0,slideWidth]);return{transform:[{translateX:translateX}],zIndex:zIndex};};anonymous.__closure={indexes:indexes,interpolate:_reactNativeReanimated.interpolate,slideWidth:slideWidth};anonymous.__workletHash=3861612759563;anonymous.__initData=_worklet_3861612759563_init_data;anonymous.__stackDetails=_e;return anonymous;}()})),getByTestId=_render20.getByTestId;yield verifyInitialRender(getByTestId);swipeToLeftOnce();yield(0,_reactNative.waitFor)(function(){expect(progress.current).toBe(1);expect(indexes).toMatchInlineSnapshot(` { "0": 0, "1": 1, "2": 2, "3": 3, } `);});}));it("`overscrollEnabled` prop: should respect overscrollEnabled=false and prevent scrolling beyond bounds",(0,_asyncToGenerator2.default)(function*(){var containerWidth=slideWidth;var containerHeight=containerWidth/2;var itemWidth=containerWidth/4;var nextSlide;var testId="CarouselAnimatedView";var progress={current:0};var Carousel=createCarousel(progress);var baseOptions={vertical:false,width:itemWidth,height:containerHeight,style:{width:containerWidth},testID:testId};var _render21=(0,_reactNative.render)((0,_jsxRuntime.jsx)(Carousel,Object.assign({ref:function(_ref25){function ref(_x3){return _ref25.apply(this,arguments);}ref.toString=function(){return _ref25.toString();};return ref;}(function(ref){if(ref){nextSlide=ref.next;}})},baseOptions,{loop:false,overscrollEnabled:false,data:createMockData(6),pagingEnabled:false}))),getByTestId=_render21.getByTestId;yield(0,_reactNative.act)(function(){getByTestId(testId).props.onLayout({nativeEvent:{layout:{width:containerWidth,height:containerHeight}}});});yield verifyInitialRender(getByTestId);yield new Promise(function(resolve){return setTimeout(resolve,3000);});yield(0,_reactNative.waitFor)(function(){expect(progress.current).toBe(0);});nextSlide==null?void 0:nextSlide();yield(0,_reactNative.waitFor)(function(){expect(progress.current).toBe(1);});nextSlide==null?void 0:nextSlide();yield(0,_reactNative.waitFor)(function(){expect(progress.current).toBe(2);});nextSlide==null?void 0:nextSlide();yield(0,_reactNative.waitFor)(function(){expect(progress.current).toBe(2);});}));}); //# sourceMappingURL=Carousel.test.js.map