From 973f55babb49ef16ee935a9a51aeb1ac6674ea92 Mon Sep 17 00:00:00 2001 From: zombiej Date: Sat, 23 May 2020 16:47:49 +0800 Subject: [PATCH] improve transfer test case --- .../transfer/__tests__/dropdown.test.js | 75 ++++++++++++------- 1 file changed, 47 insertions(+), 28 deletions(-) diff --git a/components/transfer/__tests__/dropdown.test.js b/components/transfer/__tests__/dropdown.test.js index 2acd9f0e2d..8806b54028 100644 --- a/components/transfer/__tests__/dropdown.test.js +++ b/components/transfer/__tests__/dropdown.test.js @@ -72,39 +72,58 @@ describe('Transfer.Dropdown', () => { jest.useRealTimers(); }); - it('select invert', () => { - jest.useFakeTimers(); + describe('select invert', () => { + [ + { name: 'with pagination', props: listProps, index: 2, keys: ['c', 'd'] }, + { + name: 'without pagination', + props: { ...listProps, pagination: null }, + index: 1, + keys: ['c', 'd', 'e'], + }, + ].forEach(({ name, props, index, keys }) => { + it(name, () => { + jest.useFakeTimers(); - const onSelectChange = jest.fn(); - const wrapper = mount(); - wrapper.find('.ant-transfer-list-header-dropdown').first().simulate('mouseenter'); - act(() => { - jest.runAllTimers(); + const onSelectChange = jest.fn(); + const wrapper = mount(); + wrapper.find('.ant-transfer-list-header-dropdown').first().simulate('mouseenter'); + act(() => { + jest.runAllTimers(); + }); + wrapper.update(); + + clickItem(wrapper.find('.ant-dropdown-menu').first(), index); + expect(onSelectChange).toHaveBeenCalledWith(keys, []); + + jest.useRealTimers(); + }); }); - wrapper.update(); - - clickItem(wrapper.find('.ant-dropdown-menu').first(), 2); - expect(onSelectChange).toHaveBeenCalledWith(['c', 'd'], []); - - jest.useRealTimers(); }); - it('oneWay to remove', () => { - jest.useFakeTimers(); + describe('oneWay to remove', () => { + [ + { name: 'with pagination', props: listProps }, + { name: 'without pagination', props: { ...listProps, pagination: null } }, + ].forEach(({ name, props }) => { + it(name, () => { + jest.useFakeTimers(); - const onChange = jest.fn(); - const wrapper = mount( - , - ); - wrapper.find('.ant-transfer-list-header-dropdown').last().simulate('mouseenter'); - act(() => { - jest.runAllTimers(); + const onChange = jest.fn(); + const wrapper = mount( + , + ); + wrapper.find('.ant-transfer-list-header-dropdown').last().simulate('mouseenter'); + act(() => { + jest.runAllTimers(); + }); + wrapper.update(); + + clickItem(wrapper.find('.ant-dropdown-menu').first(), 0); + expect(onChange).toHaveBeenCalledWith([], 'left', ['b', 'c']); + + jest.useRealTimers(); + }); }); - wrapper.update(); - - clickItem(wrapper.find('.ant-dropdown-menu').first(), 0); - expect(onChange).toHaveBeenCalledWith([], 'left', ['b', 'c']); - - jest.useRealTimers(); }); });