43 lines
1.3 KiB
TypeScript
43 lines
1.3 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 MockAdapter from 'axios-mock-adapter'
|
|
import axios from 'axios'
|
|
|
|
import { shallowMount } from '@vue/test-utils'
|
|
import { sleep } from '?/utils'
|
|
|
|
import router from '~/router'
|
|
import store from '~/store'
|
|
|
|
const axiosMock = new MockAdapter(axios)
|
|
|
|
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' }
|
|
|
|
axiosMock.onGet('manage/library/albums/1/').reply(200, album)
|
|
axiosMock.onGet('manage/library/albums/1/stats/').reply(200, {})
|
|
|
|
const wrapper = shallowMount(AlbumDetail, {
|
|
props: { id: 1 },
|
|
directives: {
|
|
dropdown: () => null,
|
|
title: () => null,
|
|
lazy: () => null
|
|
},
|
|
global: {
|
|
stubs: { DangerousButton, HumanDate, SanitizedHtml },
|
|
plugins: [router, store]
|
|
}
|
|
})
|
|
|
|
await sleep()
|
|
expect(wrapper.find('img').attributes('src')).to.include('default-cover')
|
|
})
|
|
})
|
|
})
|