UNPKG

@cainiaofe/cn-ui-m

Version:
71 lines (70 loc) 3.16 kB
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'); }); });