mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
72 lines
1.5 KiB
JavaScript
72 lines
1.5 KiB
JavaScript
import { shallowMount, createLocalVue } from '@vue/test-utils'
|
|
import Upload from '.'
|
|
import Vuex from 'vuex'
|
|
import Styleguide from '@human-connection/styleguide'
|
|
|
|
const localVue = createLocalVue()
|
|
|
|
localVue.use(Vuex)
|
|
localVue.use(Styleguide)
|
|
|
|
describe('Upload', () => {
|
|
let wrapper
|
|
|
|
const mocks = {
|
|
$apollo: {
|
|
mutate: jest
|
|
.fn()
|
|
.mockResolvedValueOnce({
|
|
data: { UpdateUser: { id: 'upload1', avatar: '/upload/avatar.jpg' } },
|
|
})
|
|
.mockRejectedValue({
|
|
message: 'File upload unsuccessful! Whatcha gonna do?',
|
|
}),
|
|
},
|
|
$toast: {
|
|
success: jest.fn(),
|
|
error: jest.fn(),
|
|
},
|
|
}
|
|
|
|
const propsData = {
|
|
user: {
|
|
avatar: '/api/generic.jpg',
|
|
},
|
|
}
|
|
|
|
const file = {
|
|
filename: 'avatar.jpg',
|
|
previewElement: {
|
|
classList: {
|
|
remove: jest.fn(),
|
|
add: jest.fn(),
|
|
},
|
|
querySelectorAll: jest.fn().mockReturnValue([
|
|
{
|
|
alt: '',
|
|
style: {
|
|
'background-image': '/api/generic.jpg',
|
|
},
|
|
},
|
|
]),
|
|
},
|
|
}
|
|
|
|
const dataUrl = 'avatar.jpg'
|
|
|
|
beforeEach(() => {
|
|
jest.useFakeTimers()
|
|
wrapper = shallowMount(Upload, { localVue, propsData, mocks })
|
|
})
|
|
|
|
it('sends a the UpdateUser mutation when vddrop is called', () => {
|
|
wrapper.vm.vddrop([{ filename: 'avatar.jpg' }])
|
|
expect(mocks.$apollo.mutate).toHaveBeenCalledTimes(1)
|
|
})
|
|
|
|
it('thumbnail', () => {
|
|
wrapper.vm.thumbnail(file, dataUrl)
|
|
expect(file.previewElement.classList.add).toHaveBeenCalledTimes(1)
|
|
})
|
|
})
|