koel/resources/assets/js/components/artist/ArtistInfo.spec.ts

43 lines
1.1 KiB
TypeScript
Raw Normal View History

import { expect, it } from 'vitest'
import { fireEvent } from '@testing-library/vue'
2022-05-04 21:01:35 +00:00
import factory from '@/__tests__/factory'
2022-05-13 17:58:38 +00:00
import UnitTestCase from '@/__tests__/UnitTestCase'
2022-05-04 21:01:35 +00:00
import ArtistInfo from './ArtistInfo.vue'
import ArtistThumbnail from '@/components/ui/AlbumArtistThumbnail.vue'
2022-05-13 17:58:38 +00:00
new class extends UnitTestCase {
protected test () {
it.each([['sidebar'], ['full']])('renders in %s mode', async (mode: string) => {
const { getByTestId } = this.render(ArtistInfo, {
props: {
mode,
artist: factory<Artist>('artist')
},
global: {
stubs: {
ArtistThumbnail
}
}
})
getByTestId('album-artist-thumbnail')
const element = getByTestId('artist-info')
expect(element.classList.contains(mode)).toBe(true)
})
it('triggers showing full wiki', async () => {
const artist = factory<Artist>('artist')
const { getByText } = this.render(ArtistInfo, {
props: {
artist
}
})
await fireEvent.click(getByText('Full Bio'))
getByText(artist.info!.bio!.full)
})
}
}