App.test.tsx
Language TypeScript859 B20 lines
import { render, screen } from '@testing-library/react'import { expect, it } from 'vitest'import { App } from './App'// The whole app on sample data. A store selector that returns a fresh object// on every call makes React re-render forever, which fails this render.it('the whole app renders on sample data', async () => {window.matchMedia ??= ((q: string) => ({matches: false,media: q,addEventListener() {},removeEventListener() {},})) as neverwindow.requestAnimationFrame ??= ((cb: FrameRequestCallback) => setTimeout(() => cb(0), 0)) as neverrender(<App />)expect(await screen.findByTestId('composer-input', {}, { timeout: 3000 })).toBeInTheDocument()expect(await screen.findByText('Tidy a bash backup script')).toBeInTheDocument()expect(screen.getByTestId('spend-meter')).toHaveTextContent('This month')})