koel/resources/assets/js/components/koel-plus/KoelPlusModal.spec.ts
2024-07-06 17:45:01 +02:00

32 lines
1 KiB
TypeScript

import { screen } from '@testing-library/vue'
import { commonStore } from '@/stores'
import { expect, it } from 'vitest'
import UnitTestCase from '@/__tests__/UnitTestCase'
import Modal from './KoelPlusModal.vue'
new class extends UnitTestCase {
protected test () {
it('shows button to purchase Koel Plus', async () => {
commonStore.state.koel_plus.product_id = '42'
this.renderComponent()
screen.getByTestId('buttons')
expect(screen.queryByTestId('activateForm')).toBeNull()
await this.user.click(screen.getByText('Purchase Koel Plus'))
expect(global.LemonSqueezy.Url.Open).toHaveBeenCalledWith(
'https://store.koel.dev/checkout/buy/42?embed=1&media=0&desc=0'
)
})
it('shows form to activate Koel Plus', async () => {
commonStore.state.koel_plus.product_id = '42'
this.renderComponent()
await this.user.click(screen.getByText('I have a license key'))
screen.getByTestId('activateForm')
})
}
private renderComponent () {
return this.render(Modal)
}
}