12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- import { getByIconName } from '#tests/support/components/iconQueries.ts'
- import { getTestRouter } from '#tests/support/components/renderComponent.ts'
- import { visitView } from '#tests/support/components/visitView.ts'
- import { mockApplicationConfig } from '#tests/support/mock-applicationConfig.ts'
- import { mockUserSignupVerifyMutation } from '../graphql/mutations/userSignupVerify.mocks.ts'
- describe('signup verify view', () => {
- beforeEach(() => {
- mockApplicationConfig({
- user_create_account: true,
- })
- })
- it('shows an error message without the token parameter', async () => {
- const view = await visitView('/signup/verify')
- expect(
- view.getByText(
- 'Email could not be verified. Please contact your administrator.',
- ),
- ).toBeInTheDocument()
- })
- it('shows a loading indicator during the verification process', async () => {
- const view = await visitView('/signup/verify/123')
- expect(view.getByText('Verifying your email…')).toBeInTheDocument()
- const loader = view.getByRole('status')
- expect(getByIconName(loader, 'spinner')).toBeInTheDocument()
- })
- it('shows an error message when an invalid token is supplied', async () => {
- mockUserSignupVerifyMutation({
- userSignupVerify: {
- session: null,
- errors: [{ message: 'The provided token is invalid.' }],
- },
- })
- const view = await visitView('/signup/verify/123')
- expect(
- await view.findByText(
- 'Email could not be verified. Please contact your administrator.',
- ),
- ).toBeInTheDocument()
- })
- it('shows a success message when a valid token is supplied', async () => {
- const view = await visitView('/signup/verify/123')
- expect(
- await view.findByText('Woo hoo! Your email address has been verified!'),
- ).toBeInTheDocument()
- })
- it('redirects to dashboard screen when the verification was successful', async () => {
- vi.useFakeTimers()
- await visitView('/signup/verify/123')
- await vi.runAllTimersAsync()
- vi.useRealTimers()
- await vi.waitFor(() => {
- const router = getTestRouter()
- const route = router.currentRoute.value
- expect(route.name).toBe('Dashboard')
- })
- })
- })
|