@cainiaofe/cn-ui-m
Version:
71 lines (70 loc) • 3.16 kB
JavaScript
import React from 'react';
import { render } from '@testing-library/react';
import { CnSlider, CnSliderItem } from '../index';
describe('CnSlider', function () {
it('renders without crashing', function () {
var container = render(React.createElement(CnSlider, null)).container;
expect(container).toBeInTheDocument();
});
it('renders the correct number of slides', function () {
var container = render(React.createElement(CnSlider, null,
React.createElement(CnSliderItem, null),
React.createElement(CnSliderItem, null),
React.createElement(CnSliderItem, null))).container;
var slides = container.querySelectorAll('.cn-ui-m-slider-slide');
expect(slides.length).toBe(3);
});
// it('swipes to the next slide when swipeNext is called', () => {
// const { container } = render(
// <CnSlider>
// <CnSliderItem />
// <CnSliderItem />
// <CnSliderItem />
// </CnSlider>,
// );
// const nextButton = container.querySelector('.cn-ui-m-slider-arrow-next');
// fireEvent.click(nextButton);
// const slides = container.querySelectorAll('.cn-ui-m-slider-slide');
// expect(slides[0]).not.toHaveClass('active');
// expect(slides[1]).toHaveClass('active');
// });
// it('swipes to the previous slide when swipePrev is called', () => {
// const { container } = render(
// <CnSlider index={1}>
// <CnSliderItem />
// <CnSliderItem />
// <CnSliderItem />
// </CnSlider>,
// );
// const prevButton = container.querySelector('.cn-ui-m-slider-arrow-prev');
// fireEvent.click(prevButton);
// const slides = container.querySelectorAll('.cn-ui-m-slider-slide');
// expect(slides[1]).not.toHaveClass('active');
// expect(slides[0]).toHaveClass('active');
// });
// it('calls onIndexChange callback when the slide is changed', () => {
// const mockCallback = jest.fn();
// const { container } = render(
// <CnSlider onIndexChange={mockCallback}>
// <CnSliderItem />
// <CnSliderItem />
// <CnSliderItem />
// </CnSlider>,
// );
// const nextButton = container.querySelector('.cn-ui-m-slider-arrow-next');
// fireEvent.click(nextButton);
// expect(mockCallback).toHaveBeenCalledTimes(1);
// expect(mockCallback).toHaveBeenCalledWith(1);
// });
it('renders the correct indicator when using custom indicator', function () {
var container = render(React.createElement(CnSlider, { indicator: function (total, current) { return (React.createElement("div", { "data-testid": "custom-indicator" },
current + 1,
" / ",
total)); } },
React.createElement(CnSliderItem, null),
React.createElement(CnSliderItem, null),
React.createElement(CnSliderItem, null))).container;
var indicator = container.querySelector('[data-testid="custom-indicator"]');
expect(indicator.textContent).toBe('1 / 3');
});
});