UNPKG

react-carousel-query

Version:

A infinite carousel component made with react that handles the pagination for you.

96 lines (95 loc) 3 kB
"use strict"; var _reactHooks = require("@testing-library/react-hooks"); var _useOffset = _interopRequireDefault(require("./useOffset")); var _utils = require("../utils"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } describe('useOffset', () => { const props = { currentIndex: 1, itemWidth: 300, total: 5 }; const MAX_OFFSET = props.itemWidth * (props.total - 1); test('should return the right offset value', () => { const { result } = (0, _reactHooks.renderHook)(() => (0, _useOffset.default)(props)); expect(result.current.offset).toEqual(props.itemWidth); }); test('should return the right maxOffset value', () => { const { result } = (0, _reactHooks.renderHook)(() => (0, _useOffset.default)(props)); expect(result.current.maxOffset).toEqual(MAX_OFFSET); }); test('should increase offset', () => { const { result } = (0, _reactHooks.renderHook)(() => (0, _useOffset.default)(props)); (0, _reactHooks.act)(() => { result.current.increaseOffset(); }); expect(result.current.offset).toEqual(props.itemWidth * 2); }); test('should not increase more than max', () => { const { result } = (0, _reactHooks.renderHook)(() => (0, _useOffset.default)(props)); (0, _utils.callTimes)(6, () => { (0, _reactHooks.act)(() => { result.current.increaseOffset(); }); }); expect(result.current.offset).toEqual(MAX_OFFSET); }); test('should decrease offset', () => { const { result } = (0, _reactHooks.renderHook)(() => (0, _useOffset.default)(props)); (0, _reactHooks.act)(() => { result.current.increaseOffset(); result.current.increaseOffset(); result.current.decreaseOffset(); }); expect(result.current.offset).toEqual(props.itemWidth * 2); }); test('should not decrease offset more than min', () => { const { result } = (0, _reactHooks.renderHook)(() => (0, _useOffset.default)(props)); (0, _utils.callTimes)(2, () => { (0, _reactHooks.act)(() => { result.current.decreaseOffset(); }); }); expect(result.current.offset).toEqual(0); }); test('should setPreviousOffset', () => { const { result } = (0, _reactHooks.renderHook)(() => (0, _useOffset.default)({ currentIndex: 3, total: 5, itemWidth: 300 })); (0, _reactHooks.act)(() => { result.current.increaseOffset(); result.current.increaseOffset(); result.current.setPreviousOffset(); }); expect(result.current.offset).toEqual(props.itemWidth * 2); }); test('should setNextOffset', () => { const { result } = (0, _reactHooks.renderHook)(() => (0, _useOffset.default)({ currentIndex: 1, total: 5, itemWidth: 300 })); (0, _reactHooks.act)(() => { result.current.setNextOffset(); }); expect(result.current.offset).toEqual(props.itemWidth * 2); }); });