55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
const sinon = require('sinon')
|
|
import { expect } from 'chai'
|
|
import { shallowMount, createLocalVue } from '@vue/test-utils'
|
|
import AlbumDetail from '@/views/admin/library/AlbumDetail.vue'
|
|
import GetTextPlugin from 'vue-gettext'
|
|
|
|
import HumanDate from '@/components/common/HumanDate.vue'
|
|
import DangerousButton from '@/components/common/DangerousButton.vue'
|
|
|
|
describe('views/admin/library', () => {
|
|
|
|
let wrapper
|
|
let sandbox
|
|
beforeEach(() => {
|
|
sandbox = sinon.createSandbox()
|
|
})
|
|
afterEach(() => {
|
|
sandbox.restore()
|
|
})
|
|
describe('Album details', () => {
|
|
|
|
it('displays default cover', async () => {
|
|
const album = { cover: null, artist: { id: null }, title: "dummy" }
|
|
const localVue = createLocalVue()
|
|
localVue.directive('title', (() => null))
|
|
localVue.directive('dropdown', (() => null))
|
|
localVue.use(GetTextPlugin, { translations: {} })
|
|
// overrides axios calls
|
|
sandbox.stub(AlbumDetail.methods, "fetchData").callsFake(() => null)
|
|
sandbox.stub(AlbumDetail.methods, "fetchStats").callsFake(() => null)
|
|
wrapper = shallowMount(AlbumDetail, {
|
|
localVue,
|
|
data() {
|
|
return {
|
|
isLoading: false,
|
|
isLoadingStats: false,
|
|
object: album,
|
|
stats: [],
|
|
}
|
|
},
|
|
mocks: {
|
|
$store: {
|
|
state: { auth: { profile: null }, ui: { lastDate: null } }
|
|
}
|
|
},
|
|
stubs: {
|
|
'human-date': HumanDate,
|
|
'dangerous-button': DangerousButton
|
|
},
|
|
computed: { labels: () => { return { statsWarning: null } } }
|
|
})
|
|
expect(wrapper.find('img').attributes('src')).to.include("default-cover")
|
|
})
|
|
})
|
|
}) |