From b4c84cc00a2f904c077d0fe712d13317841d0cbd Mon Sep 17 00:00:00 2001 From: Caaalabash <1121062986@qq.com> Date: Thu, 22 Oct 2020 14:02:28 +0800 Subject: [PATCH] fix(autocomplete): popper usage (#429) * fix(autocomplete): dropdownWidth * fix: el-popper usage * test: change test file * fix: remove storybook doc dir * test: sleep time --- .../__tests__/autocomplete.spec.ts | 62 ++++--- packages/autocomplete/src/index.vue | 175 ++++++++++-------- packages/color-picker/doc/basic.vue | 35 ---- packages/color-picker/doc/index.stories.ts | 5 - packages/element-plus/package.json | 2 + packages/message/doc/basic.vue | 42 ----- packages/message/doc/centered.vue | 17 -- packages/message/doc/closeable.vue | 41 ---- packages/message/doc/html.vue | 20 -- packages/message/doc/index.stories.ts | 10 - packages/message/doc/manual_close.vue | 40 ---- packages/message/doc/types.vue | 35 ---- packages/popconfirm/doc/basic.vue | 39 ---- packages/popconfirm/doc/index.stories.ts | 6 - packages/tree/doc/basic.vue | 94 ---------- packages/tree/doc/basic10.vue | 104 ----------- packages/tree/doc/basic2.vue | 60 ------ packages/tree/doc/basic3.vue | 40 ---- packages/tree/doc/basic4.vue | 59 ------ packages/tree/doc/basic5.vue | 49 ----- packages/tree/doc/basic6.vue | 92 --------- packages/tree/doc/basic7.vue | 127 ------------- packages/tree/doc/basic8.vue | 78 -------- packages/tree/doc/basic9.vue | 62 ------- packages/tree/doc/index.stories.ts | 6 - packages/tree/doc/index.vue | 77 -------- packages/upload/doc/basic.vue | 42 ----- packages/upload/doc/drop-to-upload.vue | 17 -- packages/upload/doc/index.stories.ts | 7 - packages/upload/doc/manual.vue | 32 ---- 30 files changed, 132 insertions(+), 1343 deletions(-) delete mode 100644 packages/color-picker/doc/basic.vue delete mode 100644 packages/color-picker/doc/index.stories.ts delete mode 100644 packages/message/doc/basic.vue delete mode 100644 packages/message/doc/centered.vue delete mode 100644 packages/message/doc/closeable.vue delete mode 100644 packages/message/doc/html.vue delete mode 100644 packages/message/doc/index.stories.ts delete mode 100644 packages/message/doc/manual_close.vue delete mode 100644 packages/message/doc/types.vue delete mode 100644 packages/popconfirm/doc/basic.vue delete mode 100644 packages/popconfirm/doc/index.stories.ts delete mode 100644 packages/tree/doc/basic.vue delete mode 100644 packages/tree/doc/basic10.vue delete mode 100644 packages/tree/doc/basic2.vue delete mode 100644 packages/tree/doc/basic3.vue delete mode 100644 packages/tree/doc/basic4.vue delete mode 100644 packages/tree/doc/basic5.vue delete mode 100644 packages/tree/doc/basic6.vue delete mode 100644 packages/tree/doc/basic7.vue delete mode 100644 packages/tree/doc/basic8.vue delete mode 100644 packages/tree/doc/basic9.vue delete mode 100644 packages/tree/doc/index.stories.ts delete mode 100644 packages/tree/doc/index.vue delete mode 100644 packages/upload/doc/basic.vue delete mode 100644 packages/upload/doc/drop-to-upload.vue delete mode 100644 packages/upload/doc/index.stories.ts delete mode 100644 packages/upload/doc/manual.vue diff --git a/packages/autocomplete/__tests__/autocomplete.spec.ts b/packages/autocomplete/__tests__/autocomplete.spec.ts index 7301c7b4dd..eb736e9f0e 100644 --- a/packages/autocomplete/__tests__/autocomplete.spec.ts +++ b/packages/autocomplete/__tests__/autocomplete.spec.ts @@ -50,19 +50,23 @@ describe('Autocomplete.vue', () => { }) test('triggerOnFocus', async () => { - const wrapper = _mount() + const fetchSuggestions = jest.fn() + const wrapper = _mount({ + debounce: 10, + fetchSuggestions, + }) await wrapper.setProps({ triggerOnFocus: false }) await wrapper.find('input').trigger('focus') - await sleep(500) - expect(wrapper.findAll('li').length).toBe(0) + await sleep(30) + expect(fetchSuggestions).toHaveBeenCalledTimes(0) await wrapper.find('input').trigger('blur') await wrapper.setProps({ triggerOnFocus: true }) await wrapper.find('input').trigger('focus') - await sleep(500) - expect(wrapper.findAll('li').length).toBe(4) + await sleep(30) + expect(fetchSuggestions).toHaveBeenCalledTimes(1) }) test('popperClass', async () => { @@ -87,19 +91,14 @@ describe('Autocomplete.vue', () => { }) test('popperAppendToBody', async () => { - const wrapper = _mount() - - await wrapper.setProps({ popperAppendToBody: true }) - expect(wrapper.find('.el-popper').exists()).toBe(false) - - await wrapper.setProps({ popperAppendToBody: false }) - expect(wrapper.find('.el-popper').exists()).toBe(true) + _mount({ popperAppendToBody: false }) + expect(document.body.querySelector('.el-popper__mask')).toBeNull() }) test('debounce / fetchSuggestions', async () => { const fetchSuggestions = jest.fn() const wrapper = _mount({ - debounce: 500, + debounce: 10, fetchSuggestions, }) @@ -110,20 +109,23 @@ describe('Autocomplete.vue', () => { await wrapper.find('input').trigger('focus') await wrapper.find('input').trigger('blur') expect(fetchSuggestions).toHaveBeenCalledTimes(0) - await sleep(600) + await sleep(30) expect(fetchSuggestions).toHaveBeenCalledTimes(1) await wrapper.find('input').trigger('focus') - await sleep(600) + await sleep(30) expect(fetchSuggestions).toHaveBeenCalledTimes(2) }) test('valueKey / modelValue', async () => { const wrapper = _mount() + const target = wrapper.findComponent({ ref: 'autocomplete' }).vm as any + + await target.select({ value: 'Go', tag: 'go' }) + expect(wrapper.vm.state).toBe('Go') await wrapper.setProps({ valueKey: 'tag' }) - await wrapper.find('input').trigger('focus') - await sleep(500) - await wrapper.findAll('li')[1].trigger('click') + + await target.select({ value: 'Go', tag: 'go' }) expect(wrapper.vm.state).toBe('go') }) @@ -131,36 +133,42 @@ describe('Autocomplete.vue', () => { const wrapper = _mount({ hideLoading: false, fetchSuggestions: NOOP, + debounce: 10, }) await wrapper.find('input').trigger('focus') - await sleep(500) - expect(wrapper.find('.el-icon-loading').exists()).toBe(true) + await sleep(30) + expect(document.body.querySelector('.el-icon-loading')).toBeDefined() await wrapper.setProps({ hideLoading: true }) - expect(wrapper.find('.el-icon-loading').exists()).toBe(false) + expect(document.body.querySelector('.el-icon-loading')).toBeNull() }) test('selectWhenUnmatched', async () => { const wrapper = mount(Autocomplete, { props: { selectWhenUnmatched: true, + debounce: 10, }, }) wrapper.vm.highlightedIndex = 0 wrapper.vm.handleKeyEnter() - await sleep(500) + await sleep(30) expect(wrapper.vm.highlightedIndex).toBe(-1) }) test('highlightFirstItem', async () => { - const wrapper = _mount({ highlightFirstItem: false }) + const wrapper = _mount({ + highlightFirstItem: false, + debounce: 10, + }) await wrapper.find('input').trigger('focus') - await sleep(500) - expect(wrapper.find('.highlighted').exists()).toBe(false) + await sleep(30) + expect(document.body.querySelector('.highlighted')).toBeNull() await wrapper.setProps({ highlightFirstItem: true }) + await wrapper.find('input').trigger('focus') - await sleep(500) - expect(wrapper.find('.highlighted').text()).toBe('Java') + await sleep(30) + expect(document.body.querySelector('.highlighted')).toBeDefined() }) }) diff --git a/packages/autocomplete/src/index.vue b/packages/autocomplete/src/index.vue index 956f4adb2d..5e34dc9b00 100644 --- a/packages/autocomplete/src/index.vue +++ b/packages/autocomplete/src/index.vue @@ -1,90 +1,93 @@ + diff --git a/packages/color-picker/doc/index.stories.ts b/packages/color-picker/doc/index.stories.ts deleted file mode 100644 index 614e27bfe2..0000000000 --- a/packages/color-picker/doc/index.stories.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default { - title: 'Color-picker', -} - -export { default as BasicUsage } from './basic.vue' diff --git a/packages/element-plus/package.json b/packages/element-plus/package.json index 95d88eaa49..b9d1360a5a 100644 --- a/packages/element-plus/package.json +++ b/packages/element-plus/package.json @@ -25,6 +25,8 @@ "@element-plus/timeline": "^0.0.0", "@element-plus/divider": "^0.0.0", "@element-plus/icon": "^0.0.0", + "@element-plus/input": "^0.0.0", + "@element-plus/input-number": "^0.0.0", "@element-plus/layout": "^0.0.0", "@element-plus/link": "^0.0.0", "@element-plus/progress": "^0.0.0", diff --git a/packages/message/doc/basic.vue b/packages/message/doc/basic.vue deleted file mode 100644 index 8ced309a83..0000000000 --- a/packages/message/doc/basic.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/packages/message/doc/centered.vue b/packages/message/doc/centered.vue deleted file mode 100644 index 29e47582f2..0000000000 --- a/packages/message/doc/centered.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/packages/message/doc/closeable.vue b/packages/message/doc/closeable.vue deleted file mode 100644 index 38a59a004a..0000000000 --- a/packages/message/doc/closeable.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/packages/message/doc/html.vue b/packages/message/doc/html.vue deleted file mode 100644 index e25913886d..0000000000 --- a/packages/message/doc/html.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/packages/message/doc/index.stories.ts b/packages/message/doc/index.stories.ts deleted file mode 100644 index 1118344744..0000000000 --- a/packages/message/doc/index.stories.ts +++ /dev/null @@ -1,10 +0,0 @@ -export default { - title: 'Message', -} - -export { default as BaseMessage } from './basic.vue' -export { default as TypeMessages } from './types.vue' -export { default as CloseableMessages } from './closeable.vue' -export { default as CenteredMessages } from './centered.vue' -export { default as HTMLMessages } from './html.vue' -export { default as ManualClose } from './manual_close.vue' diff --git a/packages/message/doc/manual_close.vue b/packages/message/doc/manual_close.vue deleted file mode 100644 index 48dac8c903..0000000000 --- a/packages/message/doc/manual_close.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/packages/message/doc/types.vue b/packages/message/doc/types.vue deleted file mode 100644 index 8454cbe163..0000000000 --- a/packages/message/doc/types.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/packages/popconfirm/doc/basic.vue b/packages/popconfirm/doc/basic.vue deleted file mode 100644 index 2f754a9abb..0000000000 --- a/packages/popconfirm/doc/basic.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/packages/popconfirm/doc/index.stories.ts b/packages/popconfirm/doc/index.stories.ts deleted file mode 100644 index 65b79affc9..0000000000 --- a/packages/popconfirm/doc/index.stories.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default { - title: 'Popconfirm', -} - -export { default as BasicUsage } from './basic.vue' - diff --git a/packages/tree/doc/basic.vue b/packages/tree/doc/basic.vue deleted file mode 100644 index 860a589040..0000000000 --- a/packages/tree/doc/basic.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/packages/tree/doc/basic10.vue b/packages/tree/doc/basic10.vue deleted file mode 100644 index bc1ebeabbd..0000000000 --- a/packages/tree/doc/basic10.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - diff --git a/packages/tree/doc/basic2.vue b/packages/tree/doc/basic2.vue deleted file mode 100644 index 370c90ab93..0000000000 --- a/packages/tree/doc/basic2.vue +++ /dev/null @@ -1,60 +0,0 @@ - - diff --git a/packages/tree/doc/basic3.vue b/packages/tree/doc/basic3.vue deleted file mode 100644 index 274be4454a..0000000000 --- a/packages/tree/doc/basic3.vue +++ /dev/null @@ -1,40 +0,0 @@ - - diff --git a/packages/tree/doc/basic4.vue b/packages/tree/doc/basic4.vue deleted file mode 100644 index 983b52b5e5..0000000000 --- a/packages/tree/doc/basic4.vue +++ /dev/null @@ -1,59 +0,0 @@ - - diff --git a/packages/tree/doc/basic5.vue b/packages/tree/doc/basic5.vue deleted file mode 100644 index 89d42c839b..0000000000 --- a/packages/tree/doc/basic5.vue +++ /dev/null @@ -1,49 +0,0 @@ - - diff --git a/packages/tree/doc/basic6.vue b/packages/tree/doc/basic6.vue deleted file mode 100644 index cc6983eae0..0000000000 --- a/packages/tree/doc/basic6.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - diff --git a/packages/tree/doc/basic7.vue b/packages/tree/doc/basic7.vue deleted file mode 100644 index 1f4fc3a7b2..0000000000 --- a/packages/tree/doc/basic7.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - - diff --git a/packages/tree/doc/basic8.vue b/packages/tree/doc/basic8.vue deleted file mode 100644 index 752121312f..0000000000 --- a/packages/tree/doc/basic8.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - - diff --git a/packages/tree/doc/basic9.vue b/packages/tree/doc/basic9.vue deleted file mode 100644 index 887d88df6f..0000000000 --- a/packages/tree/doc/basic9.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - diff --git a/packages/tree/doc/index.stories.ts b/packages/tree/doc/index.stories.ts deleted file mode 100644 index 8aa47eb28c..0000000000 --- a/packages/tree/doc/index.stories.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { default as BasicUsage } from './index.vue' - -export default { - title: 'Tree', -} - diff --git a/packages/tree/doc/index.vue b/packages/tree/doc/index.vue deleted file mode 100644 index 11da14c70d..0000000000 --- a/packages/tree/doc/index.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - - - diff --git a/packages/upload/doc/basic.vue b/packages/upload/doc/basic.vue deleted file mode 100644 index 170df2bcff..0000000000 --- a/packages/upload/doc/basic.vue +++ /dev/null @@ -1,42 +0,0 @@ - - diff --git a/packages/upload/doc/drop-to-upload.vue b/packages/upload/doc/drop-to-upload.vue deleted file mode 100644 index 9bd13a097b..0000000000 --- a/packages/upload/doc/drop-to-upload.vue +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/packages/upload/doc/index.stories.ts b/packages/upload/doc/index.stories.ts deleted file mode 100644 index 0c0748e0c9..0000000000 --- a/packages/upload/doc/index.stories.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default { - title: 'Upload', -} - -export { default as BasicUsage } from './basic.vue' -export { default as ManualUpload } from './manual.vue' -export { default as DropToUpload } from './drop-to-upload.vue' diff --git a/packages/upload/doc/manual.vue b/packages/upload/doc/manual.vue deleted file mode 100644 index 62401e6664..0000000000 --- a/packages/upload/doc/manual.vue +++ /dev/null @@ -1,32 +0,0 @@ - -