diff --git a/src/__tests__/fixtures/Transitioner.svelte b/src/__tests__/fixtures/Transitioner.svelte index 2ee1557..f817ce8 100644 --- a/src/__tests__/fixtures/Transitioner.svelte +++ b/src/__tests__/fixtures/Transitioner.svelte @@ -1,8 +1,8 @@ diff --git a/src/__tests__/transition.test.js b/src/__tests__/transition.test.js index 5b1ff18..fdd83eb 100644 --- a/src/__tests__/transition.test.js +++ b/src/__tests__/transition.test.js @@ -1,30 +1,42 @@ import { userEvent } from '@testing-library/user-event' -import { beforeEach, describe, expect, test, vi } from 'vitest' +import { beforeEach, expect, test, vi } from 'vitest' import { render, screen, waitFor } from '..' import Transitioner from './fixtures/Transitioner.svelte' -describe('transitions', () => { - beforeEach(() => { - if (window.navigator.userAgent.includes('jsdom')) { - const raf = (fn) => setTimeout(() => fn(new Date()), 16) - vi.stubGlobal('requestAnimationFrame', raf) - } +beforeEach(() => { + if (window.navigator.userAgent.includes('jsdom')) { + const raf = (fn) => setTimeout(() => fn(new Date()), 16) + vi.stubGlobal('requestAnimationFrame', raf) + } +}) + +test('on:introend', async () => { + const user = userEvent.setup() + + render(Transitioner) + const start = screen.getByRole('button') + await user.click(start) + + const pending = screen.getByTestId('intro-pending') + expect(pending).toBeInTheDocument() + + await waitFor(() => { + const done = screen.queryByTestId('intro-done') + expect(done).toBeInTheDocument() }) +}) - test('on:introend', async () => { - const user = userEvent.setup() +test('on:introend with prop change', async () => { + const { rerender } = render(Transitioner) - render(Transitioner) - const start = screen.getByRole('button') - await user.click(start) + await rerender({ show: true }) - const pending = screen.getByTestId('intro-pending') - expect(pending).toBeInTheDocument() + const pending = screen.getByTestId('intro-pending') + expect(pending).toBeInTheDocument() - await waitFor(() => { - const done = screen.queryByTestId('intro-done') - expect(done).toBeInTheDocument() - }) + await waitFor(() => { + const done = screen.queryByTestId('intro-done') + expect(done).toBeInTheDocument() }) })