mirror of
https://github.com/element-plus/element-plus.git
synced 2025-03-01 15:35:51 +08:00
* 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
64 lines
1.7 KiB
TypeScript
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)
|
|
})
|
|
})
|
|
})
|