Robert Schäfer 5978adff68 Sketch a test for a custom image component
@tansaku @aonomike I hope this clarifies the task.

When you're done, feel free to use this component wherever we use
`<img>` in `/webapp/`.
2019-04-23 19:35:41 +02:00

44 lines
1.1 KiB
JavaScript

import { shallowMount } from '@vue/test-utils'
import Image from '.'
describe('Image', () => {
let propsData = { imageProps: { class: 'hc-badge', src: '' } }
const Wrapper = () => {
return shallowMount(Image, { propsData })
}
it('renders', () => {
expect(Wrapper().is('img')).toBe(true)
})
it('passes properties down to `img`', () => {
expect(Wrapper().classes()).toEqual(['hc-badge'])
})
describe('given a relative `src`', () => {
beforeEach(() => {
propsData.imageProps.src = '/img/badges/fundraisingbox_de_airship.svg'
})
it('adds a prefix to load the image from the backend', () => {
expect(Wrapper().attributes('src')).toBe(
'/api/img/badges/fundraisingbox_de_airship.svg'
)
})
})
describe('given an absolute `src`', () => {
beforeEach(() => {
propsData.imageProps.src = 'http://lorempixel.com/640/480/animals'
})
it('keeps the URL as is', () => {
// e.g. our seeds have absolute image URLs
expect(Wrapper().attributes('src')).toBe(
'http://lorempixel.com/640/480/animals'
)
})
})
})