@@ -11,7 +11,9 @@ describe('Table.filter', () => {
1111 beforeEach ( ( ) => {
1212 document . body . innerHTML = '' ;
1313 } ) ;
14- const filterFn = ( value , record ) => record . name . indexOf ( value ) !== - 1 ;
14+ const filterFn = ( value , record ) => {
15+ return record . name . indexOf ( value ) !== - 1 ;
16+ } ;
1517 const column = {
1618 title : 'Name' ,
1719 dataIndex : 'name' ,
@@ -49,6 +51,7 @@ describe('Table.filter', () => {
4951 ...listeners ,
5052 } ,
5153 sync : false ,
54+ attachToDocument : true ,
5255 } ;
5356 }
5457
@@ -309,24 +312,15 @@ describe('Table.filter', () => {
309312 ] ,
310313 } ) ,
311314 ) ;
312- // jest.useFakeTimers()
313- const dropdownWrapper = mount (
314- {
315- render ( ) {
316- return wrapper . find ( { name : 'Trigger' } ) . vm . getComponent ( ) ;
317- } ,
318- } ,
319- { sync : false , attachToDocument : true } ,
320- ) ;
321315 await asyncExpect ( ( ) => {
322- dropdownWrapper
323- . findAll ( '.ant-dropdown-menu-submenu-title' )
324- . at ( 0 )
325- . trigger ( 'mouseenter' ) ;
316+ $$ ( '.ant-dropdown-trigger' ) [ 0 ] . click ( ) ;
326317 } ) ;
318+ await asyncExpect ( ( ) => {
319+ $$ ( '.ant-dropdown-menu-submenu-title' ) [ 0 ] . dispatchEvent ( new MouseEvent ( 'mouseenter' ) ) ;
320+ } , 0 ) ;
327321 await asyncExpect ( ( ) => {
328322 $$ ( '.ant-dropdown-menu-submenu-title' ) [ 1 ] . dispatchEvent ( new MouseEvent ( 'mouseenter' ) ) ;
329- } , 1000 ) ;
323+ } , 500 ) ;
330324 await asyncExpect ( ( ) => {
331325 const menuItem = $$ ( '.ant-dropdown-menu-item' ) ;
332326 menuItem [ menuItem . length - 1 ] . click ( ) ;
@@ -439,22 +433,35 @@ describe('Table.filter', () => {
439433 } ) ;
440434 } ) ;
441435
442- // it('confirm filter when dropdown hidden', (done) => {
443- // const handleChange = jest.fn()
444- // const wrapper = mount(Table, { ...getTableOptions({
445- // columns: [{
446- // ...column,
447- // filters: [
448- // { text: 'Jack', value: 'Jack' },
449- // { text: 'Lucy', value: 'Lucy' },
450- // ],
451- // }],
452- // }, { change: handleChange }), attachToDocument: true })
453-
454- // wrapper.find('.ant-dropdown-trigger').first().simulate('click')
455- // wrapper.find('.ant-dropdown-menu-item').first().simulate('click')
456- // wrapper.find('.ant-dropdown-trigger').first().simulate('click')
436+ fit ( 'confirm filter when dropdown hidden' , async ( ) => {
437+ const handleChange = jest . fn ( ) ;
438+ const wrapper = mount ( Table , {
439+ ...getTableOptions (
440+ {
441+ columns : [
442+ {
443+ ...column ,
444+ filters : [
445+ { text : 'Jack' , value : 'Jack' } ,
446+ { text : 'Lucy' , value : 'Lucy' } ,
447+ ] ,
448+ } ,
449+ ] ,
450+ } ,
451+ { change : handleChange } ,
452+ ) ,
453+ attachToDocument : true ,
454+ } ) ;
455+ await asyncExpect ( ( ) => {
456+ wrapper . find ( '.ant-dropdown-trigger' ) . trigger ( 'click' ) ;
457+ } , 0 ) ;
458+ await asyncExpect ( ( ) => {
459+ $$ ( '.ant-dropdown-menu-item' ) [ 0 ] . click ( ) ;
460+ } , 500 ) ;
461+ await asyncExpect ( ( ) => {
462+ wrapper . find ( '.ant-dropdown-trigger' ) . trigger ( 'click' ) ;
463+ } , 500 ) ;
457464
458- // expect(handleChange).toBeCalled()
459- // })
465+ expect ( handleChange ) . toBeCalled ( ) ;
466+ } ) ;
460467} ) ;
0 commit comments