@divanov/infinite-react-carousel
Version:
Infinite carousel for react
101 lines (99 loc) • 3.46 kB
JavaScript
import React from 'react';
import { mount } from 'enzyme';
import { SliderWithVirtualList } from '../testComponent';
describe('[VirtualList]', () => {
describe('virtualList is true', () => {
const wrapper = mount(<SliderWithVirtualList />);
const wrapperInstance = wrapper.instance();
wrapper.setProps({
virtualList: true,
dots: true,
arrowsScroll: 10,
slidesToShow: 3,
centerMode: true,
wheel: true,
wheelScroll: 10
}).update();
it('test arrows scroll', async () => {
await wrapperInstance.testForScroll(() => {
expect(wrapper
.find('.carousel-track')
.getDOMNode()
.querySelectorAll('.carousel-item').length).toEqual(1000);
expect(
wrapper
.find('.carousel-track')
.getDOMNode()
.querySelector('.carousel-item.active')
.textContent
).toEqual('slide1');
expect(wrapper.state()).toEqual({ currentSlide: null, nextSlide: null, endSlide: null });
wrapper.find('.carousel-prev').simulate('click');
}, () => {
expect(
wrapper
.find('.carousel-track')
.getDOMNode()
.querySelector('.carousel-item.active')
.textContent
).toEqual('slide991');
expect(wrapperInstance.getBeforeState()).toEqual({ currentSlide: 0, nextSlide: 990 });
expect(wrapper
.find('.carousel-track')
.getDOMNode()
.querySelectorAll('.carousel-item').length).toEqual(9);
}, 2000);
await wrapperInstance.testForScroll(() => {
wrapper.find('.carousel-next').simulate('click');
expect(wrapper
.find('.carousel-track')
.getDOMNode()
.querySelectorAll('.carousel-item').length).toEqual(9);
}, () => {
expect(
wrapper
.find('.carousel-track')
.getDOMNode()
.querySelector('.carousel-item.active')
.textContent
).toEqual('slide1');
expect(wrapperInstance.getBeforeState()).toEqual({ currentSlide: 990, nextSlide: 0 });
expect(wrapper
.find('.carousel-track')
.getDOMNode()
.querySelectorAll('.carousel-item').length).toEqual(9);
}, 2000);
});
it('set overScan to 3', async () => {
wrapper.setProps({ overScan: 3 }).update();
await wrapperInstance.testForScroll(() => {
expect(wrapper
.find('.carousel-track')
.getDOMNode()
.querySelectorAll('.carousel-item').length).toEqual(1000);
expect(
wrapper
.find('.carousel-track')
.getDOMNode()
.querySelector('.carousel-item.active')
.textContent
).toEqual('slide1');
expect(wrapper.state()).toEqual({ currentSlide: 990, nextSlide: 0, endSlide: 0 });
wrapper.find('.carousel-next').simulate('click');
}, () => {
expect(
wrapper
.find('.carousel-track')
.getDOMNode()
.querySelector('.carousel-item.active')
.textContent
).toEqual('slide11');
expect(wrapperInstance.getBeforeState()).toEqual({ currentSlide: 0, nextSlide: 10 });
expect(wrapper
.find('.carousel-track')
.getDOMNode()
.querySelectorAll('.carousel-item').length).toEqual(11);
}, 2000);
});
});
});