testsAndMisc/poker-stakes/src/main.test.tsx
Krzysztof kuhy Rudnicki 72a5e28456 Track poker-stakes so the file-length cap can reach it
The directory has existed on disk with 58 untracked files, four of them over
the 250-line cap. An untracked file is invisible to every pre-commit hook, so
those violations could not be fixed or gated while it stayed that way -- and
its CI workflow was untracked too, so nothing ran against it.

Landed with its already-written evidence artifact and a contract, since this
crosses the 4-file threshold.

Verified before staging: 58 plain text source/config files, no binaries, no
node_modules, no build output. npm run check passes -- typecheck, eslint
--max-warnings 0, and 220 tests at 100% statements/branches/functions/lines.

Splitting its four oversized files is deliberately a separate commit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011w2Pj4Ek3ZNMQVYcFHgXDY
2026-08-16 15:19:07 +02:00

28 lines
786 B
TypeScript

import { act } from '@testing-library/react'
import { afterEach, beforeEach, describe, expect, it } from 'vitest'
import { vi } from 'vitest'
beforeEach(() => {
vi.resetModules()
document.body.innerHTML = ''
})
afterEach(() => {
vi.unstubAllGlobals()
})
describe('main', () => {
it('refuses to boot without a #root element', async () => {
await expect(import('./main')).rejects.toThrow('root element not found')
})
it('mounts the app into #root', async () => {
document.body.innerHTML = '<div id="root"></div>'
await act(async () => {
await import('./main')
})
// Asserts the mount happened, not the whole app's copy — App has its own tests for that.
expect(document.querySelector('#root')?.textContent).toContain('Poker Stakes')
})
})