@@ -2,6 +2,7 @@ import * as React from 'react'
22import { render , fireEvent , act , waitFor } from '@testing-library/react'
33import '@testing-library/jest-dom'
44import { Elevator } from '../elevator'
5+ import { trigger , triggerDrag } from '@/utils/event-mocker'
56
67const list = [
78 {
@@ -383,3 +384,34 @@ test('should reset scroll state correctly', () => {
383384 // 简化测试,只确认组件正常渲染
384385 expect ( true ) . toBeTruthy ( )
385386} )
387+
388+ test ( 'should handle drag start correctly' , async ( ) => {
389+ const { container } = render ( < Elevator list = { list } height = { 200 } /> )
390+ const barsInner = container . querySelector ( '.nut-elevator-bars-inner' )
391+
392+ // 模拟拖拽开始
393+ await act ( async ( ) => {
394+ trigger ( barsInner , 'touchstart' , 0 , 0 )
395+ trigger ( barsInner , 'touchmove' , 0 , 20 )
396+ } )
397+
398+ // 验证 scrollStart 状态是否被正确设置
399+ await waitFor ( ( ) => {
400+ expect ( container . querySelector ( '.nut-elevator-code-current' ) ) . toBeTruthy ( )
401+ } )
402+ } )
403+
404+ test ( 'should handle drag end correctly' , async ( ) => {
405+ const { container } = render ( < Elevator list = { list } height = { 200 } /> )
406+ const barsInner = container . querySelector ( '.nut-elevator-bars-inner' )
407+
408+ // 模拟完整的拖拽过程
409+ await act ( async ( ) => {
410+ triggerDrag ( barsInner , 0 , 50 )
411+ } )
412+
413+ // 验证拖拽结束后的状态
414+ await waitFor ( ( ) => {
415+ expect ( container . querySelector ( '.nut-elevator-code-current' ) ) . toBeFalsy ( )
416+ } )
417+ } )
0 commit comments