mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
import { mount, createLocalVue } from '@vue/test-utils'
|
|
import TeaserImage from './TeaserImage.vue'
|
|
import Styleguide from '@human-connection/styleguide'
|
|
|
|
const localVue = createLocalVue()
|
|
|
|
localVue.use(Styleguide)
|
|
|
|
describe('TeaserImage.vue', () => {
|
|
let wrapper
|
|
let mocks
|
|
|
|
beforeEach(() => {
|
|
mocks = {
|
|
$toast: {
|
|
error: jest.fn(),
|
|
},
|
|
}
|
|
})
|
|
describe('mount', () => {
|
|
const Wrapper = () => {
|
|
return mount(TeaserImage, { mocks, localVue })
|
|
}
|
|
beforeEach(() => {
|
|
wrapper = Wrapper()
|
|
})
|
|
|
|
describe('File upload', () => {
|
|
const imageUpload = [
|
|
{ file: { filename: 'avataar.svg', previewElement: '' }, url: 'someUrlToImage' },
|
|
]
|
|
|
|
it('supports adding a teaser image', () => {
|
|
wrapper.vm.addTeaserImage(imageUpload)
|
|
expect(wrapper.emitted().addTeaserImage[0]).toEqual(imageUpload)
|
|
})
|
|
})
|
|
|
|
describe('handles errors', () => {
|
|
beforeEach(() => jest.useFakeTimers())
|
|
const message = 'File upload failed'
|
|
const fileError = { status: 'error' }
|
|
|
|
it('defaults to error false', () => {
|
|
expect(wrapper.vm.error).toEqual(false)
|
|
})
|
|
|
|
it('shows an error toaster when verror is called', () => {
|
|
wrapper.vm.verror(fileError, message)
|
|
expect(mocks.$toast.error).toHaveBeenCalledWith(fileError.status, message)
|
|
})
|
|
|
|
it('changes error status from false to true to false', () => {
|
|
wrapper.vm.verror(fileError, message)
|
|
expect(wrapper.vm.error).toEqual(true)
|
|
jest.runAllTimers()
|
|
expect(wrapper.vm.error).toEqual(false)
|
|
})
|
|
})
|
|
})
|
|
})
|