Write component tests

This commit is contained in:
Matt Rider 2019-05-23 23:30:55 -03:00
parent 18a4853874
commit d62f722381
2 changed files with 54 additions and 23 deletions

View File

@ -53,16 +53,14 @@ export default {
</div>
<div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>
<div class="dz-error-message"><span data-dz-errormessage></span></div>
<div class="dz-success-mark"><ds-icon name="check" /></div>
<div class="dz-error-mark"><ds-icon name="close" /></div>
</div>
</div>
`
},
thumbnail(file, dataUrl) {
var j, len, ref, thumbnailElement
this.$refs.el.dropzone.element.style['background-image'] = ''
let j, len, ref, thumbnailElement
if (file.previewElement) {
this.$refs.el.$el.style.backgroundImage = ''
file.previewElement.classList.remove('dz-file-preview')
ref = file.previewElement.querySelectorAll('[data-dz-thumbnail-bg]')
for (j = 0, len = ref.length; j < len; j++) {
@ -70,17 +68,11 @@ export default {
thumbnailElement.alt = file.name
thumbnailElement.style.backgroundImage = 'url("' + dataUrl + '")'
}
return setTimeout(
(function(_this) {
return function() {
return file.previewElement.classList.add('dz-image-preview')
}
})(this),
1
)
file.previewElement.classList.add('dz-image-preview')
}
},
vddrop([file]) {
vddrop(file) {
const avatarUpload = file[0]
this.$apollo
.mutate({
mutation: gql`
@ -92,11 +84,11 @@ export default {
}
`,
variables: {
avatarUpload: file,
avatarUpload,
id: this.user.id
}
})
.then(response => {
.then(() => {
this.$toast.success(this.$t('user.avatar.submitted'))
})
.catch(error => this.$toast.error(error.message))

View File

@ -4,26 +4,65 @@ import Vuex from 'vuex'
import Styleguide from '@human-connection/styleguide'
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(Styleguide)
describe('Upload', () => {
let wrapper
let propsData
propsData = {
user: {
avatar: '/api/avatar.jpg'
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(() => {
wrapper = shallowMount(Upload, { localVue, propsData })
jest.useFakeTimers()
wrapper = shallowMount(Upload, { localVue, propsData, mocks })
})
it('renders', () => {
expect(wrapper.is('div')).toBe(true)
it('sends a the UpdateUser mutation when vddrop is called', () => {
wrapper.vm.vddrop([{ filename: 'avatar.jpg' }])
expect(mocks.$apollo.mutate).toHaveBeenCalledTimes(1)
})
// TODO: add more test cases in this file
it('thumbnail', () => {
wrapper.vm.thumbnail(file, dataUrl)
expect(file.previewElement.classList.add).toHaveBeenCalledTimes(1)
})
})