react-carousel-query
Version:
A infinite carousel component made with react that handles the pagination for you.
96 lines (95 loc) • 3 kB
JavaScript
;
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);
});
});