51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import DangerousButton from '~/components/common/DangerousButton.vue'
|
|
import AlbumDetail from '~/views/admin/library/AlbumDetail.vue'
|
|
import SanitizedHtml from '~/components/SanitizedHtml.vue'
|
|
import HumanDate from '~/components/common/HumanDate.vue'
|
|
|
|
import moxios from 'moxios'
|
|
|
|
import { shallowMount } from '@vue/test-utils'
|
|
import { gettext } from '~/init/locale'
|
|
import { sleep } from '?/utils'
|
|
|
|
import router from '~/router'
|
|
import store from '~/store'
|
|
|
|
beforeEach(() => moxios.install())
|
|
afterEach(() => moxios.uninstall())
|
|
|
|
describe('views/admin/library', () => {
|
|
describe('Album details', () => {
|
|
it('displays default cover', async () => {
|
|
const album = { cover: null, artist: { id: 1 }, title: 'dummy', id: 1, creation_date: '2020-01-01' }
|
|
|
|
moxios.stubRequest('manage/library/albums/1/', {
|
|
status: 200,
|
|
response: album
|
|
})
|
|
|
|
moxios.stubRequest('manage/library/albums/1/stats/', {
|
|
status: 200,
|
|
response: {}
|
|
})
|
|
|
|
const wrapper = shallowMount(AlbumDetail, {
|
|
props: { id: 1 },
|
|
directives: {
|
|
dropdown: () => null,
|
|
title: () => null,
|
|
lazy: () => null
|
|
},
|
|
global: {
|
|
stubs: { DangerousButton, HumanDate, SanitizedHtml },
|
|
plugins: [gettext, router, store]
|
|
}
|
|
})
|
|
|
|
await sleep()
|
|
expect(wrapper.find('img').attributes('src')).to.include('default-cover')
|
|
})
|
|
})
|
|
})
|