UNPKG

@cainiaofe/cn-ui-m

Version:
46 lines (45 loc) 2.2 kB
import React from 'react'; import { render, screen, fireEvent } from '@testing-library/react'; import { CnScrollView } from '../index'; describe('CnScrollView', function () { it('should render children correctly', function () { render(React.createElement(CnScrollView, null, React.createElement("div", null, "Child 1"), React.createElement("div", null, "Child 2"))); expect(screen.getByText('Child 1')).toBeInTheDocument(); expect(screen.getByText('Child 2')).toBeInTheDocument(); }); // it('should call loadMore when intersection occurs', async () => { // const loadMoreMock = jest.fn(); // render( // <CnScrollView hasMore loadMore={loadMoreMock}> // <div>Child 1</div> // <div>Child 2</div> // </CnScrollView>, // ); // // Simulate intersection event // await fireEvent.scroll(window, { target: { scrollY: 10000 } }); // expect(loadMoreMock).toHaveBeenCalledTimes(1); // }); it('should not call loadMore when hasMore is false', function () { var loadMoreMock = jest.fn(); render(React.createElement(CnScrollView, { hasMore: false, loadMore: loadMoreMock }, React.createElement("div", null, "Child 1"), React.createElement("div", null, "Child 2"))); // Simulate intersection event fireEvent.scroll(window, { target: { scrollY: 100 } }); expect(loadMoreMock).not.toHaveBeenCalled(); }); it('should render More component when hasMore is true', function () { render(React.createElement(CnScrollView, { hasMore: true }, React.createElement("div", null, "Child 1"), React.createElement("div", null, "Child 2"))); expect(screen.getByTestId('cn-scroll-view-more')).toBeInTheDocument(); }); it('should not render More component when hasMore is false', function () { render(React.createElement(CnScrollView, { hasMore: false }, React.createElement("div", null, "Child 1"), React.createElement("div", null, "Child 2"))); expect(screen.queryByTestId('cn-scroll-view-more')).not.toBeInTheDocument(); }); });