react-native-reanimated-carousel 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -40
- package/lib/commonjs/components/Carousel.js +1 -42
- package/lib/commonjs/components/Carousel.js.map +1 -1
- package/lib/commonjs/components/Carousel.test.js +2 -678
- package/lib/commonjs/components/Carousel.test.js.map +1 -1
- package/lib/commonjs/components/CarouselLayout.js +1 -211
- package/lib/commonjs/components/CarouselLayout.js.map +1 -1
- package/lib/commonjs/components/ItemLayout.js +1 -98
- package/lib/commonjs/components/ItemLayout.js.map +1 -1
- package/lib/commonjs/components/ItemRenderer.js +1 -79
- package/lib/commonjs/components/ItemRenderer.js.map +1 -1
- package/lib/commonjs/components/LazyView.js +1 -21
- package/lib/commonjs/components/LazyView.js.map +1 -1
- package/lib/commonjs/components/Pagination/Basic/PaginationItem.js +1 -83
- package/lib/commonjs/components/Pagination/Basic/PaginationItem.js.map +1 -1
- package/lib/commonjs/components/Pagination/Basic/index.js +1 -53
- package/lib/commonjs/components/Pagination/Basic/index.js.map +1 -1
- package/lib/commonjs/components/Pagination/Custom/PaginationItem.js +1 -88
- package/lib/commonjs/components/Pagination/Custom/PaginationItem.js.map +1 -1
- package/lib/commonjs/components/Pagination/Custom/index.js +1 -61
- package/lib/commonjs/components/Pagination/Custom/index.js.map +1 -1
- package/lib/commonjs/components/Pagination/index.js +1 -16
- package/lib/commonjs/components/Pagination/index.js.map +1 -1
- package/lib/commonjs/components/ScrollViewGesture.js +1 -362
- package/lib/commonjs/components/ScrollViewGesture.js.map +1 -1
- package/lib/commonjs/components/rnr-demo.test.js +1 -44
- package/lib/commonjs/components/rnr-demo.test.js.map +1 -1
- package/lib/commonjs/constants/index.js +1 -21
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/hooks/useAutoPlay.js +1 -56
- package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
- package/lib/commonjs/hooks/useAutoPlay.test.js +1 -154
- package/lib/commonjs/hooks/useAutoPlay.test.js.map +1 -1
- package/lib/commonjs/hooks/useCarouselController.js +1 -301
- package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
- package/lib/commonjs/hooks/useCarouselController.test.js +1 -456
- package/lib/commonjs/hooks/useCarouselController.test.js.map +1 -1
- package/lib/commonjs/hooks/useCheckMounted.js +1 -23
- package/lib/commonjs/hooks/useCheckMounted.js.map +1 -1
- package/lib/commonjs/hooks/useCheckMounted.test.js +1 -44
- package/lib/commonjs/hooks/useCheckMounted.test.js.map +1 -1
- package/lib/commonjs/hooks/useCommonVariables.js +1 -102
- package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
- package/lib/commonjs/hooks/useCommonVariables.test.js +1 -37
- package/lib/commonjs/hooks/useCommonVariables.test.js.map +1 -1
- package/lib/commonjs/hooks/useInitProps.js +1 -78
- package/lib/commonjs/hooks/useInitProps.js.map +1 -1
- package/lib/commonjs/hooks/useInitProps.test.js +1 -126
- package/lib/commonjs/hooks/useInitProps.test.js.map +1 -1
- package/lib/commonjs/hooks/useLayoutConfig.js +1 -39
- package/lib/commonjs/hooks/useLayoutConfig.js.map +1 -1
- package/lib/commonjs/hooks/useLayoutConfig.test.js +1 -241
- package/lib/commonjs/hooks/useLayoutConfig.test.js.map +1 -1
- package/lib/commonjs/hooks/useOffsetX.js +1 -51
- package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
- package/lib/commonjs/hooks/useOffsetX.test.js +2 -40
- package/lib/commonjs/hooks/useOffsetX.test.js.map +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.js +1 -46
- package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.test.js +1 -162
- package/lib/commonjs/hooks/useOnProgressChange.test.js.map +1 -1
- package/lib/commonjs/hooks/usePanGestureProxy.js +1 -117
- package/lib/commonjs/hooks/usePanGestureProxy.js.map +1 -1
- package/lib/commonjs/hooks/usePanGestureProxy.test.js +1 -419
- package/lib/commonjs/hooks/usePanGestureProxy.test.js.map +1 -1
- package/lib/commonjs/hooks/usePropsErrorBoundary.js +1 -36
- package/lib/commonjs/hooks/usePropsErrorBoundary.js.map +1 -1
- package/lib/commonjs/hooks/useUpdateGestureConfig.js +1 -19
- package/lib/commonjs/hooks/useUpdateGestureConfig.js.map +1 -1
- package/lib/commonjs/hooks/useUpdateGestureConfig.test.js +1 -91
- package/lib/commonjs/hooks/useUpdateGestureConfig.test.js.map +1 -1
- package/lib/commonjs/hooks/useVisibleRanges.js +1 -71
- package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
- package/lib/commonjs/hooks/useVisibleRanges.test.js +7 -101
- package/lib/commonjs/hooks/useVisibleRanges.test.js.map +1 -1
- package/lib/commonjs/index.js +1 -21
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/layouts/index.js +1 -20
- package/lib/commonjs/layouts/index.js.map +1 -1
- package/lib/commonjs/layouts/normal.js +1 -27
- package/lib/commonjs/layouts/normal.js.map +1 -1
- package/lib/commonjs/layouts/parallax.js +1 -38
- package/lib/commonjs/layouts/parallax.js.map +1 -1
- package/lib/commonjs/layouts/stack.js +1 -213
- package/lib/commonjs/layouts/stack.js.map +1 -1
- package/lib/commonjs/layouts/stack.test.js +3 -22
- package/lib/commonjs/layouts/stack.test.js.map +1 -1
- package/lib/commonjs/store/index.js +1 -67
- package/lib/commonjs/store/index.js.map +1 -1
- package/lib/commonjs/types.js +1 -5
- package/lib/commonjs/utils/compute-offset-if-data-changed.js +1 -51
- package/lib/commonjs/utils/compute-offset-if-data-changed.js.map +1 -1
- package/lib/commonjs/utils/compute-offset-if-data-changed.test.js +1 -29
- package/lib/commonjs/utils/compute-offset-if-data-changed.test.js.map +1 -1
- package/lib/commonjs/utils/compute-offset-if-size-changed.js +1 -17
- package/lib/commonjs/utils/compute-offset-if-size-changed.js.map +1 -1
- package/lib/commonjs/utils/compute-offset-if-size-changed.test.js +1 -71
- package/lib/commonjs/utils/compute-offset-if-size-changed.test.js.map +1 -1
- package/lib/commonjs/utils/computed-with-auto-fill-data.js +1 -123
- package/lib/commonjs/utils/computed-with-auto-fill-data.js.map +1 -1
- package/lib/commonjs/utils/computed-with-auto-fill-data.test.js +1 -179
- package/lib/commonjs/utils/computed-with-auto-fill-data.test.js.map +1 -1
- package/lib/commonjs/utils/deal-with-animation.js +1 -20
- package/lib/commonjs/utils/deal-with-animation.js.map +1 -1
- package/lib/commonjs/utils/deal-with-animation.test.js +1 -75
- package/lib/commonjs/utils/deal-with-animation.test.js.map +1 -1
- package/lib/commonjs/utils/handleroffset-direction.js +1 -15
- package/lib/commonjs/utils/handleroffset-direction.js.map +1 -1
- package/lib/commonjs/utils/handleroffset-direction.test.js +1 -45
- package/lib/commonjs/utils/handleroffset-direction.test.js.map +1 -1
- package/lib/commonjs/utils/index.test.js +1 -73
- package/lib/commonjs/utils/index.test.js.map +1 -1
- package/lib/commonjs/utils/log.js +1 -21
- package/lib/commonjs/utils/log.js.map +1 -1
- package/lib/commonjs/utils/log.test.js +1 -57
- package/lib/commonjs/utils/log.test.js.map +1 -1
- package/lib/module/hooks/useOnProgressChange.js +1 -1
- package/lib/module/hooks/useOnProgressChange.js.map +1 -1
- package/package.json +7 -2
- package/src/hooks/useOnProgressChange.ts +1 -1
|
@@ -1,685 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _react = _interopRequireDefault(require("react"));
|
|
4
|
-
|
|
5
|
-
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
6
|
-
|
|
7
|
-
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
8
|
-
|
|
9
|
-
var _reactNative = require("@testing-library/react-native");
|
|
10
|
-
|
|
11
|
-
var _jestUtils = require("react-native-gesture-handler/jest-utils");
|
|
12
|
-
|
|
13
|
-
var _Carousel = _interopRequireDefault(require("./Carousel"));
|
|
14
|
-
|
|
15
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
-
|
|
17
|
-
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; }
|
|
18
|
-
|
|
19
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
-
|
|
21
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
22
|
-
|
|
23
|
-
jest.setTimeout(1000 * 12);
|
|
24
|
-
const mockPan = jest.fn();
|
|
25
|
-
|
|
26
|
-
const realPan = _reactNativeGestureHandler.Gesture.Pan();
|
|
27
|
-
|
|
28
|
-
const gestureTestId = "rnrc-gesture-handler";
|
|
29
|
-
jest.spyOn(_reactNativeGestureHandler.Gesture, "Pan").mockImplementation(() => {
|
|
30
|
-
mockPan();
|
|
31
|
-
return realPan.withTestId(gestureTestId);
|
|
32
|
-
});
|
|
33
|
-
describe("Test the real swipe behavior of Carousel to ensure it's working as expected", () => {
|
|
34
|
-
const slideWidth = 300;
|
|
35
|
-
const slideHeight = 200;
|
|
36
|
-
const slideCount = 4;
|
|
37
|
-
beforeEach(() => {
|
|
38
|
-
mockPan.mockClear();
|
|
39
|
-
}); // Helper function to create mock data
|
|
40
|
-
|
|
41
|
-
const createMockData = function () {
|
|
42
|
-
let length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : slideCount;
|
|
43
|
-
return Array.from({
|
|
44
|
-
length
|
|
45
|
-
}, (_, i) => `Item ${i + 1}`);
|
|
46
|
-
}; // Helper function to create default props with correct typing
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const createDefaultProps = function (progressAnimVal) {
|
|
50
|
-
let customProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
51
|
-
const baseProps = {
|
|
52
|
-
width: slideWidth,
|
|
53
|
-
height: slideHeight,
|
|
54
|
-
data: createMockData(),
|
|
55
|
-
defaultIndex: 0,
|
|
56
|
-
testID: "carousel-swipe-container",
|
|
57
|
-
onProgressChange: progressAnimVal
|
|
58
|
-
};
|
|
59
|
-
return { ...baseProps,
|
|
60
|
-
...customProps
|
|
61
|
-
};
|
|
62
|
-
}; // Helper function to create test wrapper
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const createCarousel = progress => {
|
|
66
|
-
const Wrapper = /*#__PURE__*/_react.default.forwardRef((customProps, ref) => {
|
|
67
|
-
const progressAnimVal = (0, _reactNativeReanimated.useSharedValue)(progress.current);
|
|
68
|
-
|
|
69
|
-
const defaultRenderItem = _ref => {
|
|
70
|
-
let {
|
|
71
|
-
item,
|
|
72
|
-
index
|
|
73
|
-
} = _ref;
|
|
74
|
-
return /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
|
|
75
|
-
testID: `carousel-item-${index}`,
|
|
76
|
-
style: {
|
|
77
|
-
width: slideWidth,
|
|
78
|
-
height: slideHeight,
|
|
79
|
-
flex: 1
|
|
80
|
-
}
|
|
81
|
-
}, item);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const {
|
|
85
|
-
renderItem = defaultRenderItem,
|
|
86
|
-
...defaultProps
|
|
87
|
-
} = createDefaultProps(progressAnimVal, customProps);
|
|
88
|
-
(0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
89
|
-
progress.current = progressAnimVal.value;
|
|
90
|
-
}, [progressAnimVal]);
|
|
91
|
-
return /*#__PURE__*/_react.default.createElement(_Carousel.default, _extends({}, defaultProps, {
|
|
92
|
-
renderItem: renderItem,
|
|
93
|
-
ref: ref
|
|
94
|
-
}));
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
return Wrapper;
|
|
98
|
-
}; // Helper function to simulate swipe
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const swipeToLeftOnce = function () {
|
|
102
|
-
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
103
|
-
const {
|
|
104
|
-
itemWidth = slideWidth,
|
|
105
|
-
velocityX = -slideWidth
|
|
106
|
-
} = options;
|
|
107
|
-
(0, _jestUtils.fireGestureHandler)((0, _jestUtils.getByGestureTestId)(gestureTestId), [{
|
|
108
|
-
state: _reactNativeGestureHandler.State.BEGAN,
|
|
109
|
-
translationX: 0,
|
|
110
|
-
velocityX
|
|
111
|
-
}, {
|
|
112
|
-
state: _reactNativeGestureHandler.State.ACTIVE,
|
|
113
|
-
translationX: -itemWidth * 0.25,
|
|
114
|
-
velocityX
|
|
115
|
-
}, {
|
|
116
|
-
state: _reactNativeGestureHandler.State.ACTIVE,
|
|
117
|
-
translationX: -itemWidth * 0.5,
|
|
118
|
-
velocityX
|
|
119
|
-
}, {
|
|
120
|
-
state: _reactNativeGestureHandler.State.ACTIVE,
|
|
121
|
-
translationX: -itemWidth * 0.75,
|
|
122
|
-
velocityX
|
|
123
|
-
}, {
|
|
124
|
-
state: _reactNativeGestureHandler.State.END,
|
|
125
|
-
translationX: -itemWidth,
|
|
126
|
-
velocityX
|
|
127
|
-
}]);
|
|
128
|
-
}; // Helper function to verify initial render
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
const verifyInitialRender = async getByTestId => {
|
|
132
|
-
await (0, _reactNative.waitFor)(() => {
|
|
133
|
-
const item = getByTestId("carousel-item-0");
|
|
134
|
-
expect(item).toBeTruthy();
|
|
135
|
-
}, {
|
|
136
|
-
timeout: 1000 * 3
|
|
137
|
-
});
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
it("`data` prop: should render correctly", async () => {
|
|
141
|
-
const progress = {
|
|
142
|
-
current: 0
|
|
143
|
-
};
|
|
144
|
-
const Wrapper = createCarousel(progress);
|
|
145
|
-
const {
|
|
146
|
-
getByTestId
|
|
147
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
148
|
-
data: createMockData(6)
|
|
149
|
-
}));
|
|
150
|
-
await verifyInitialRender(getByTestId);
|
|
151
|
-
expect(getByTestId("carousel-item-0")).toBeTruthy();
|
|
152
|
-
expect(getByTestId("carousel-item-1")).toBeTruthy();
|
|
153
|
-
expect(getByTestId("carousel-item-2")).toBeTruthy();
|
|
154
|
-
expect(getByTestId("carousel-item-3")).toBeTruthy();
|
|
155
|
-
expect(getByTestId("carousel-item-4")).toBeTruthy();
|
|
156
|
-
expect(getByTestId("carousel-item-5")).toBeTruthy();
|
|
157
|
-
});
|
|
158
|
-
it("`renderItem` prop: should render items correctly", async () => {
|
|
159
|
-
const progress = {
|
|
160
|
-
current: 0
|
|
161
|
-
};
|
|
162
|
-
const Wrapper = createCarousel(progress);
|
|
163
|
-
const {
|
|
164
|
-
getByTestId
|
|
165
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
166
|
-
renderItem: _ref2 => {
|
|
167
|
-
let {
|
|
168
|
-
item,
|
|
169
|
-
index
|
|
170
|
-
} = _ref2;
|
|
171
|
-
return /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.Text, {
|
|
172
|
-
testID: `item-${index}`
|
|
173
|
-
}, item);
|
|
174
|
-
}
|
|
175
|
-
}));
|
|
176
|
-
await (0, _reactNative.waitFor)(() => expect(getByTestId("item-0")).toBeTruthy());
|
|
177
|
-
});
|
|
178
|
-
it("should swipe to the left", async () => {
|
|
179
|
-
const progress = {
|
|
180
|
-
current: 0
|
|
181
|
-
};
|
|
182
|
-
const Wrapper = createCarousel(progress);
|
|
183
|
-
const {
|
|
184
|
-
getByTestId
|
|
185
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, null));
|
|
186
|
-
await verifyInitialRender(getByTestId); // Test swipe sequence
|
|
187
|
-
|
|
188
|
-
for (let i = 1; i <= slideCount; i++) {
|
|
189
|
-
swipeToLeftOnce();
|
|
190
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(i % slideCount));
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
it("`loop` prop: should swipe back to the first item when loop is true", async () => {
|
|
194
|
-
const progress = {
|
|
195
|
-
current: 0
|
|
196
|
-
};
|
|
197
|
-
const Wrapper = createCarousel(progress);
|
|
198
|
-
{
|
|
199
|
-
const {
|
|
200
|
-
getByTestId
|
|
201
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
202
|
-
loop: true
|
|
203
|
-
}));
|
|
204
|
-
await verifyInitialRender(getByTestId); // Test swipe sequence
|
|
205
|
-
|
|
206
|
-
for (let i = 1; i <= slideCount; i++) {
|
|
207
|
-
swipeToLeftOnce();
|
|
208
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(i % slideCount));
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
{
|
|
212
|
-
const {
|
|
213
|
-
getByTestId
|
|
214
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
215
|
-
loop: false
|
|
216
|
-
}));
|
|
217
|
-
await verifyInitialRender(getByTestId);
|
|
218
|
-
(0, _jestUtils.fireGestureHandler)((0, _jestUtils.getByGestureTestId)(gestureTestId), [{
|
|
219
|
-
state: _reactNativeGestureHandler.State.BEGAN,
|
|
220
|
-
translationX: 0
|
|
221
|
-
}, {
|
|
222
|
-
state: _reactNativeGestureHandler.State.ACTIVE,
|
|
223
|
-
translationX: slideWidth * 0.25
|
|
224
|
-
}, {
|
|
225
|
-
state: _reactNativeGestureHandler.State.END,
|
|
226
|
-
translationX: slideWidth * 0.5
|
|
227
|
-
}]); // Because the loop is false, so the the carousel will swipe back to the first item
|
|
228
|
-
|
|
229
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(0));
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
it("`onSnapToItem` prop: should call the onSnapToItem callback", async () => {
|
|
233
|
-
const progress = {
|
|
234
|
-
current: 0
|
|
235
|
-
};
|
|
236
|
-
const onSnapToItem = jest.fn();
|
|
237
|
-
const Wrapper = createCarousel(progress);
|
|
238
|
-
const {
|
|
239
|
-
getByTestId
|
|
240
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
241
|
-
onSnapToItem: onSnapToItem
|
|
242
|
-
}));
|
|
243
|
-
await verifyInitialRender(getByTestId);
|
|
244
|
-
expect(onSnapToItem).not.toHaveBeenCalled();
|
|
245
|
-
swipeToLeftOnce();
|
|
246
|
-
await (0, _reactNative.waitFor)(() => expect(onSnapToItem).toHaveBeenCalledWith(1));
|
|
247
|
-
swipeToLeftOnce();
|
|
248
|
-
await (0, _reactNative.waitFor)(() => expect(onSnapToItem).toHaveBeenCalledWith(2));
|
|
249
|
-
swipeToLeftOnce();
|
|
250
|
-
await (0, _reactNative.waitFor)(() => expect(onSnapToItem).toHaveBeenCalledWith(3));
|
|
251
|
-
});
|
|
252
|
-
it("`autoPlay` prop: should swipe automatically when autoPlay is true", async () => {
|
|
253
|
-
const progress = {
|
|
254
|
-
current: 0
|
|
255
|
-
};
|
|
256
|
-
const Wrapper = createCarousel(progress);
|
|
257
|
-
const {
|
|
258
|
-
getByTestId
|
|
259
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
260
|
-
autoPlay: true,
|
|
261
|
-
autoPlayInterval: 300
|
|
262
|
-
}));
|
|
263
|
-
await verifyInitialRender(getByTestId);
|
|
264
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(1));
|
|
265
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(2));
|
|
266
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(3));
|
|
267
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(0));
|
|
268
|
-
});
|
|
269
|
-
it("`autoPlayReverse` prop: should swipe automatically in reverse when autoPlayReverse is true", async () => {
|
|
270
|
-
const progress = {
|
|
271
|
-
current: 0
|
|
272
|
-
};
|
|
273
|
-
const Wrapper = createCarousel(progress);
|
|
274
|
-
const {
|
|
275
|
-
getByTestId
|
|
276
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
277
|
-
autoPlay: true,
|
|
278
|
-
autoPlayReverse: true
|
|
279
|
-
}));
|
|
280
|
-
await verifyInitialRender(getByTestId);
|
|
281
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(3));
|
|
282
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(2));
|
|
283
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(1));
|
|
284
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(0));
|
|
285
|
-
});
|
|
286
|
-
it("`defaultIndex` prop: should render the correct item with the defaultIndex props", async () => {
|
|
287
|
-
const progress = {
|
|
288
|
-
current: 0
|
|
289
|
-
};
|
|
290
|
-
const Wrapper = createCarousel(progress);
|
|
291
|
-
const {
|
|
292
|
-
getByTestId
|
|
293
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
294
|
-
defaultIndex: 2
|
|
295
|
-
}));
|
|
296
|
-
await verifyInitialRender(getByTestId);
|
|
297
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(2));
|
|
298
|
-
});
|
|
299
|
-
it("`defaultScrollOffsetValue` prop: should render the correct progress value with the defaultScrollOffsetValue props", async () => {
|
|
300
|
-
const progress = {
|
|
301
|
-
current: 0
|
|
302
|
-
};
|
|
303
|
-
const Wrapper = createCarousel(progress);
|
|
304
|
-
|
|
305
|
-
const WrapperWithCustomProps = () => {
|
|
306
|
-
const defaultScrollOffsetValue = (0, _reactNativeReanimated.useSharedValue)(-slideWidth);
|
|
307
|
-
return /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
308
|
-
defaultScrollOffsetValue: defaultScrollOffsetValue
|
|
309
|
-
});
|
|
310
|
-
};
|
|
311
|
-
|
|
312
|
-
(0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(WrapperWithCustomProps, null));
|
|
313
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(1));
|
|
314
|
-
});
|
|
315
|
-
it("`ref` prop: should handle the ref props", async () => {
|
|
316
|
-
const Wrapper = createCarousel({
|
|
317
|
-
current: 0
|
|
318
|
-
});
|
|
319
|
-
const fn = jest.fn();
|
|
320
|
-
|
|
321
|
-
const WrapperWithCustomProps = _ref3 => {
|
|
322
|
-
let {
|
|
323
|
-
refSetupCallback
|
|
324
|
-
} = _ref3;
|
|
325
|
-
return /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
326
|
-
ref: ref => {
|
|
327
|
-
refSetupCallback(!!ref);
|
|
328
|
-
}
|
|
329
|
-
});
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
(0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(WrapperWithCustomProps, {
|
|
333
|
-
refSetupCallback: fn
|
|
334
|
-
}));
|
|
335
|
-
await (0, _reactNative.waitFor)(() => expect(fn).toHaveBeenCalledWith(true));
|
|
336
|
-
});
|
|
337
|
-
it("`autoFillData` prop: should auto fill data array to allow loop playback when the loop props is true", async () => {
|
|
338
|
-
const progress = {
|
|
339
|
-
current: 0
|
|
340
|
-
};
|
|
341
|
-
const Wrapper = createCarousel(progress);
|
|
342
|
-
{
|
|
343
|
-
const {
|
|
344
|
-
getAllByTestId
|
|
345
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
346
|
-
autoFillData: true,
|
|
347
|
-
data: createMockData(1)
|
|
348
|
-
}));
|
|
349
|
-
await (0, _reactNative.waitFor)(() => {
|
|
350
|
-
expect(getAllByTestId("carousel-item-0").length).toBe(3);
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
{
|
|
354
|
-
const {
|
|
355
|
-
getAllByTestId
|
|
356
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
357
|
-
autoFillData: false,
|
|
358
|
-
data: createMockData(1)
|
|
359
|
-
}));
|
|
360
|
-
await (0, _reactNative.waitFor)(() => {
|
|
361
|
-
expect(getAllByTestId("carousel-item-0").length).toBe(1);
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
});
|
|
365
|
-
it("`pagingEnabled` prop: should swipe to the next item when pagingEnabled is true", async () => {
|
|
366
|
-
const progress = {
|
|
367
|
-
current: 0
|
|
368
|
-
};
|
|
369
|
-
const Wrapper = createCarousel(progress);
|
|
370
|
-
{
|
|
371
|
-
const {
|
|
372
|
-
getByTestId
|
|
373
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
374
|
-
pagingEnabled: false
|
|
375
|
-
}));
|
|
376
|
-
await verifyInitialRender(getByTestId);
|
|
377
|
-
(0, _jestUtils.fireGestureHandler)((0, _jestUtils.getByGestureTestId)(gestureTestId), [{
|
|
378
|
-
state: _reactNativeGestureHandler.State.BEGAN,
|
|
379
|
-
translationX: 0,
|
|
380
|
-
velocityX: -5
|
|
381
|
-
}, {
|
|
382
|
-
state: _reactNativeGestureHandler.State.ACTIVE,
|
|
383
|
-
translationX: -slideWidth * 0.15,
|
|
384
|
-
velocityX: -5
|
|
385
|
-
}, {
|
|
386
|
-
state: _reactNativeGestureHandler.State.END,
|
|
387
|
-
translationX: -slideWidth * 0.25,
|
|
388
|
-
velocityX: -5
|
|
389
|
-
}]);
|
|
390
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(0));
|
|
391
|
-
}
|
|
392
|
-
{
|
|
393
|
-
const {
|
|
394
|
-
getByTestId
|
|
395
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
396
|
-
pagingEnabled: true
|
|
397
|
-
}));
|
|
398
|
-
await verifyInitialRender(getByTestId);
|
|
399
|
-
(0, _jestUtils.fireGestureHandler)((0, _jestUtils.getByGestureTestId)(gestureTestId), [{
|
|
400
|
-
state: _reactNativeGestureHandler.State.BEGAN,
|
|
401
|
-
translationX: 0,
|
|
402
|
-
velocityX: -1000
|
|
403
|
-
}, {
|
|
404
|
-
state: _reactNativeGestureHandler.State.ACTIVE,
|
|
405
|
-
translationX: -slideWidth * 0.15,
|
|
406
|
-
velocityX: -1000
|
|
407
|
-
}, {
|
|
408
|
-
state: _reactNativeGestureHandler.State.END,
|
|
409
|
-
translationX: -slideWidth * 0.25,
|
|
410
|
-
velocityX: -1000
|
|
411
|
-
}]);
|
|
412
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(1));
|
|
413
|
-
}
|
|
414
|
-
});
|
|
415
|
-
it("`onConfigurePanGesture` prop: should call the onConfigurePanGesture callback", async () => {
|
|
416
|
-
const progress = {
|
|
417
|
-
current: 0
|
|
418
|
-
};
|
|
419
|
-
const Wrapper = createCarousel(progress);
|
|
420
|
-
let _pan = null;
|
|
421
|
-
(0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
422
|
-
onConfigurePanGesture: pan => {
|
|
423
|
-
_pan = pan;
|
|
424
|
-
return pan;
|
|
425
|
-
}
|
|
426
|
-
}));
|
|
427
|
-
const {
|
|
428
|
-
getByTestId
|
|
429
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
430
|
-
pagingEnabled: false
|
|
431
|
-
}));
|
|
432
|
-
await verifyInitialRender(getByTestId);
|
|
433
|
-
expect(_pan).not.toBeNull();
|
|
434
|
-
});
|
|
435
|
-
it("`onScrollStart` prop: should call the onScrollStart callback", async () => {
|
|
436
|
-
const progress = {
|
|
437
|
-
current: 0
|
|
438
|
-
};
|
|
439
|
-
let startedProgress;
|
|
440
|
-
|
|
441
|
-
const onScrollStart = () => {
|
|
442
|
-
if (typeof startedProgress === "number") return;
|
|
443
|
-
startedProgress = progress.current;
|
|
444
|
-
};
|
|
445
|
-
|
|
446
|
-
const Wrapper = createCarousel(progress);
|
|
447
|
-
const {
|
|
448
|
-
getByTestId
|
|
449
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
450
|
-
onScrollStart: onScrollStart
|
|
451
|
-
}));
|
|
452
|
-
await verifyInitialRender(getByTestId);
|
|
453
|
-
(0, _jestUtils.fireGestureHandler)((0, _jestUtils.getByGestureTestId)(gestureTestId), [{
|
|
454
|
-
state: _reactNativeGestureHandler.State.BEGAN,
|
|
455
|
-
translationX: 0,
|
|
456
|
-
velocityX: 1000
|
|
457
|
-
}, {
|
|
458
|
-
state: _reactNativeGestureHandler.State.ACTIVE,
|
|
459
|
-
translationX: slideWidth / 2,
|
|
460
|
-
velocityX: 1000
|
|
461
|
-
}, {
|
|
462
|
-
state: _reactNativeGestureHandler.State.END,
|
|
463
|
-
translationX: slideWidth,
|
|
464
|
-
velocityX: 1000
|
|
465
|
-
}]);
|
|
466
|
-
await (0, _reactNative.waitFor)(() => {
|
|
467
|
-
expect(startedProgress).toBe(0);
|
|
468
|
-
});
|
|
469
|
-
});
|
|
470
|
-
it("`onScrollEnd` prop: should call the onScrollEnd callback", async () => {
|
|
471
|
-
const progress = {
|
|
472
|
-
current: 0
|
|
473
|
-
};
|
|
474
|
-
let endedProgress;
|
|
475
|
-
const onScrollEnd = jest.fn(() => {
|
|
476
|
-
if (typeof endedProgress === "number") return;
|
|
477
|
-
endedProgress = progress.current;
|
|
478
|
-
});
|
|
479
|
-
const Wrapper = createCarousel(progress);
|
|
480
|
-
const {
|
|
481
|
-
getByTestId
|
|
482
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
483
|
-
onScrollEnd: onScrollEnd
|
|
484
|
-
}));
|
|
485
|
-
await verifyInitialRender(getByTestId);
|
|
486
|
-
(0, _jestUtils.fireGestureHandler)((0, _jestUtils.getByGestureTestId)(gestureTestId), [{
|
|
487
|
-
state: _reactNativeGestureHandler.State.BEGAN,
|
|
488
|
-
translationX: 0,
|
|
489
|
-
velocityX: 1000
|
|
490
|
-
}, {
|
|
491
|
-
state: _reactNativeGestureHandler.State.ACTIVE,
|
|
492
|
-
translationX: slideWidth / 2,
|
|
493
|
-
velocityX: 1000
|
|
494
|
-
}, {
|
|
495
|
-
state: _reactNativeGestureHandler.State.END,
|
|
496
|
-
translationX: slideWidth,
|
|
497
|
-
velocityX: 1000
|
|
498
|
-
}]);
|
|
499
|
-
await (0, _reactNative.waitFor)(() => {
|
|
500
|
-
expect(endedProgress).toBe(3);
|
|
501
|
-
expect(onScrollEnd).toHaveBeenCalledWith(3);
|
|
502
|
-
});
|
|
503
|
-
});
|
|
504
|
-
it("`onProgressChange` prop: should call the onProgressChange callback", async () => {
|
|
505
|
-
const offsetProgressVal = {
|
|
506
|
-
current: 0
|
|
507
|
-
};
|
|
508
|
-
const absoluteProgressVal = {
|
|
509
|
-
current: 0
|
|
510
|
-
};
|
|
511
|
-
const onProgressChange = jest.fn((offsetProgress, absoluteProgress) => {
|
|
512
|
-
offsetProgressVal.current = offsetProgress;
|
|
513
|
-
absoluteProgressVal.current = absoluteProgress;
|
|
514
|
-
});
|
|
515
|
-
const Wrapper = createCarousel(offsetProgressVal);
|
|
516
|
-
const {
|
|
517
|
-
getByTestId
|
|
518
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
519
|
-
onProgressChange: onProgressChange,
|
|
520
|
-
defaultIndex: 0
|
|
521
|
-
}));
|
|
522
|
-
await verifyInitialRender(getByTestId);
|
|
523
|
-
await (0, _reactNative.waitFor)(() => {
|
|
524
|
-
expect(offsetProgressVal.current).toBe(0);
|
|
525
|
-
expect(absoluteProgressVal.current).toBe(0);
|
|
526
|
-
});
|
|
527
|
-
(0, _jestUtils.fireGestureHandler)((0, _jestUtils.getByGestureTestId)(gestureTestId), [{
|
|
528
|
-
state: _reactNativeGestureHandler.State.BEGAN,
|
|
529
|
-
translationX: 0,
|
|
530
|
-
velocityX: -1000
|
|
531
|
-
}, {
|
|
532
|
-
state: _reactNativeGestureHandler.State.ACTIVE,
|
|
533
|
-
translationX: -slideWidth / 2,
|
|
534
|
-
velocityX: -1000
|
|
535
|
-
}, {
|
|
536
|
-
state: _reactNativeGestureHandler.State.END,
|
|
537
|
-
translationX: -slideWidth,
|
|
538
|
-
velocityX: -1000
|
|
539
|
-
}]);
|
|
540
|
-
await (0, _reactNative.waitFor)(() => {
|
|
541
|
-
expect(offsetProgressVal.current).toBe(-slideWidth);
|
|
542
|
-
expect(absoluteProgressVal.current).toBe(1);
|
|
543
|
-
});
|
|
544
|
-
});
|
|
545
|
-
it("`fixedDirection` prop: should swipe to the correct direction when fixedDirection is positive", async () => {
|
|
546
|
-
{
|
|
547
|
-
const progress = {
|
|
548
|
-
current: 0
|
|
549
|
-
};
|
|
550
|
-
const Wrapper = createCarousel(progress);
|
|
551
|
-
const {
|
|
552
|
-
getByTestId
|
|
553
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
554
|
-
fixedDirection: "positive"
|
|
555
|
-
}));
|
|
556
|
-
await verifyInitialRender(getByTestId);
|
|
557
|
-
swipeToLeftOnce({
|
|
558
|
-
velocityX: slideWidth
|
|
559
|
-
});
|
|
560
|
-
await (0, _reactNative.waitFor)(() => {
|
|
561
|
-
expect(progress.current).toBe(3);
|
|
562
|
-
});
|
|
563
|
-
}
|
|
564
|
-
{
|
|
565
|
-
const progress = {
|
|
566
|
-
current: 0
|
|
567
|
-
};
|
|
568
|
-
const Wrapper = createCarousel(progress);
|
|
569
|
-
const {
|
|
570
|
-
getByTestId
|
|
571
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
572
|
-
fixedDirection: "negative"
|
|
573
|
-
}));
|
|
574
|
-
await verifyInitialRender(getByTestId);
|
|
575
|
-
swipeToLeftOnce({
|
|
576
|
-
velocityX: -slideWidth
|
|
577
|
-
});
|
|
578
|
-
await (0, _reactNative.waitFor)(() => expect(progress.current).toBe(1));
|
|
579
|
-
}
|
|
580
|
-
});
|
|
581
|
-
it("`customAnimation` prop: should apply the custom animation", async () => {
|
|
582
|
-
const progress = {
|
|
583
|
-
current: 0
|
|
584
|
-
};
|
|
585
|
-
const indexes = {};
|
|
586
|
-
const Wrapper = createCarousel(progress);
|
|
587
|
-
const {
|
|
588
|
-
getByTestId
|
|
589
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
590
|
-
customAnimation: (value, index) => {
|
|
591
|
-
"worklet";
|
|
592
|
-
|
|
593
|
-
indexes[index] = index;
|
|
594
|
-
const zIndex = (0, _reactNativeReanimated.interpolate)(value, [-1, 0, 1], [10, 20, 30]);
|
|
595
|
-
const translateX = (0, _reactNativeReanimated.interpolate)(value, [-2, 0, 1], [-slideWidth, 0, slideWidth]);
|
|
596
|
-
return {
|
|
597
|
-
transform: [{
|
|
598
|
-
translateX
|
|
599
|
-
}],
|
|
600
|
-
zIndex
|
|
601
|
-
};
|
|
602
|
-
}
|
|
603
|
-
}));
|
|
604
|
-
await verifyInitialRender(getByTestId);
|
|
605
|
-
swipeToLeftOnce();
|
|
606
|
-
await (0, _reactNative.waitFor)(() => {
|
|
607
|
-
expect(progress.current).toBe(1);
|
|
608
|
-
expect(indexes).toMatchInlineSnapshot(`
|
|
1
|
+
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(`
|
|
609
2
|
{
|
|
610
3
|
"0": 0,
|
|
611
4
|
"1": 1,
|
|
612
5
|
"2": 2,
|
|
613
6
|
"3": 3,
|
|
614
7
|
}
|
|
615
|
-
`);
|
|
616
|
-
});
|
|
617
|
-
});
|
|
618
|
-
it("`overscrollEnabled` prop: should respect overscrollEnabled=false and prevent scrolling beyond bounds", async () => {
|
|
619
|
-
var _nextSlide, _nextSlide2, _nextSlide3;
|
|
620
|
-
|
|
621
|
-
const containerWidth = slideWidth;
|
|
622
|
-
const containerHeight = containerWidth / 2;
|
|
623
|
-
const itemWidth = containerWidth / 4;
|
|
624
|
-
let nextSlide;
|
|
625
|
-
const testId = "CarouselAnimatedView";
|
|
626
|
-
const progress = {
|
|
627
|
-
current: 0
|
|
628
|
-
};
|
|
629
|
-
const Carousel = createCarousel(progress);
|
|
630
|
-
const baseOptions = {
|
|
631
|
-
vertical: false,
|
|
632
|
-
width: itemWidth,
|
|
633
|
-
height: containerHeight,
|
|
634
|
-
style: {
|
|
635
|
-
width: containerWidth
|
|
636
|
-
},
|
|
637
|
-
testID: testId
|
|
638
|
-
};
|
|
639
|
-
const {
|
|
640
|
-
getByTestId
|
|
641
|
-
} = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(Carousel, _extends({
|
|
642
|
-
ref: ref => {
|
|
643
|
-
if (ref) {
|
|
644
|
-
nextSlide = ref.next;
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
}, baseOptions, {
|
|
648
|
-
loop: false,
|
|
649
|
-
overscrollEnabled: false,
|
|
650
|
-
data: createMockData(6),
|
|
651
|
-
pagingEnabled: false
|
|
652
|
-
})));
|
|
653
|
-
await (0, _reactNative.act)(() => {
|
|
654
|
-
getByTestId(testId).props.onLayout({
|
|
655
|
-
nativeEvent: {
|
|
656
|
-
layout: {
|
|
657
|
-
width: containerWidth,
|
|
658
|
-
height: containerHeight
|
|
659
|
-
}
|
|
660
|
-
}
|
|
661
|
-
});
|
|
662
|
-
});
|
|
663
|
-
await verifyInitialRender(getByTestId);
|
|
664
|
-
await new Promise(resolve => setTimeout(resolve, 3000)); // The test logic is that the first screen has four elements
|
|
665
|
-
|
|
666
|
-
await (0, _reactNative.waitFor)(() => {
|
|
667
|
-
expect(progress.current).toBe(0);
|
|
668
|
-
}); // After swiping left twice, the last element is close to the right side of the container
|
|
669
|
-
|
|
670
|
-
(_nextSlide = nextSlide) === null || _nextSlide === void 0 ? void 0 : _nextSlide();
|
|
671
|
-
await (0, _reactNative.waitFor)(() => {
|
|
672
|
-
expect(progress.current).toBe(1);
|
|
673
|
-
});
|
|
674
|
-
(_nextSlide2 = nextSlide) === null || _nextSlide2 === void 0 ? void 0 : _nextSlide2();
|
|
675
|
-
await (0, _reactNative.waitFor)(() => {
|
|
676
|
-
expect(progress.current).toBe(2);
|
|
677
|
-
}); // At this point, swiping left again should stay on the last element, meaning this swipe is invalid
|
|
678
|
-
|
|
679
|
-
(_nextSlide3 = nextSlide) === null || _nextSlide3 === void 0 ? void 0 : _nextSlide3();
|
|
680
|
-
await (0, _reactNative.waitFor)(() => {
|
|
681
|
-
expect(progress.current).toBe(2);
|
|
682
|
-
});
|
|
683
|
-
});
|
|
684
|
-
});
|
|
8
|
+
`);});}));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);});}));});
|
|
685
9
|
//# sourceMappingURL=Carousel.test.js.map
|