element-plus/packages/components/upload/__tests__/upload-dragger.test.tsx
Jeremy a30ae9d103
refactor(project): removing packages/tokens (#11769)
* refactor(tokens): remove tokens

* Remove tokens/breadcrumb.

* refactor(tokens): remove tokens/button

* refactor(tokens): remove tokens/carousel

* refactor(tokens): removing tokens/checkbox

* refactor(tokens): removing tokens/collapse

* refactor(tokens): removing tokens/dialog

* refactor(tokens): removing tokens/pagination

* refactor(tokens): removing tokens/radio

* refactor(tokens): removing tokens/row

* refactor(tokens): removing tokens/scrollbar

* refactor(tokens): removing tokens/slider

* refactor(tokens): removing tokens/tabs

* refactor(tokens): removing tokens/upload

* refactor(tokens): removing tokens/popper

* refactor(tokens): removing tokens/tooltip

* refactor(tokens): removing tokens/tooltip-v2

* refactor(tokens): removing tokens/date-picker

* refactor(project): removing tokens/experimentals

* Remove tokens/experimentals
* Remove package/tokens
* Remove tokens related parts

* refactor(project): removing packages/tokens completely

* chore: update import statement
2023-03-01 13:59:21 +08:00

64 lines
1.7 KiB
TypeScript

import { computed, provide } from 'vue'
import { mount } from '@vue/test-utils'
import { describe, expect, test, vi } from 'vitest'
import { uploadContextKey } from '@element-plus/components/upload'
import UploadDragger from '../src/upload-dragger.vue'
const AXIOM = 'Rem is the best girl'
const _mount = (props = {}) =>
mount({
setup() {
provide(uploadContextKey, { accept: computed(() => 'video/*') })
return () => <UploadDragger {...props}>{AXIOM}</UploadDragger>
},
})
describe('<upload-dragger />', () => {
describe('render test', () => {
test('should render correct', () => {
const wrapper = _mount()
expect(wrapper.text()).toBe(AXIOM)
})
})
describe('functionality', () => {
test('onDrag works', async () => {
const wrapper = _mount()
await wrapper.find('.el-upload-dragger').trigger('dragover')
expect(wrapper.classes('is-dragover')).toBe(true)
})
test('ondrop works for any given video type', async () => {
const onDrop = vi.fn()
const wrapper = _mount({ onDrop })
const dragger = wrapper.findComponent(UploadDragger)
await dragger.trigger('drop', {
dataTransfer: {
files: [
{
type: 'video/mp4',
name: 'test.mp4',
},
],
},
})
expect(onDrop).toHaveBeenCalledTimes(1)
expect(dragger.emitted('file')).toHaveLength(1)
await dragger.trigger('drop', {
dataTransfer: {
files: [
{
type: 'video/mov',
name: 'test.mov',
},
],
},
})
expect(dragger.emitted('file')).toHaveLength(2)
})
})
})