koel/resources/assets/js/stores/artistStore.spec.ts

28 lines
890 B
TypeScript
Raw Normal View History

2022-05-15 14:57:28 +00:00
import { cloneDeep } from 'lodash'
import data from '@/__tests__/blobs/data'
import { expect, it } from 'vitest'
import UnitTestCase from '@/__tests__/UnitTestCase'
import { artistStore } from '@/stores'
new class extends UnitTestCase {
protected beforeEach () {
super.beforeEach(() => artistStore.init(cloneDeep(data.artists)))
}
protected afterEach () {
super.afterEach(() => (artistStore.state.artists = []))
}
protected test () {
it('gathers artists', () => expect(artistStore.state.artists).toHaveLength(5))
it('gets an artist by ID', () => expect(artistStore.byId(3)!.name).toBe('All-4-One'))
it('compact artists', () => {
artistStore.compact()
// because we've not processed songs/albums, all artists here have no songs
// and should be removed after compacting
expect(artistStore.state.artists).toHaveLength(0)
})
}
}