Mock @prisma/client globally in bun-setup.ts to allow unit tests to run
without requiring the generated Prisma client. This improves test isolation
and allows tests to pass even when prisma generate hasn't been run.
- Install @types/bun and @types/jsdom for proper type definitions
- Fix mock function typing in test files
- Create jest-dom.d.ts to properly extend Bun's Matchers interface
- Remove MockedFunction imports (not supported in Bun's types)
- Cast global.fetch and useSession mocks to any where needed
- Fix mock.module return types to match expected signatures
This resolves TypeScript errors that were preventing proper code
completion and type checking in IDEs.
Replace mock.clearAllMocks() with mockFetch.mockClear() to only
clear the specific fetch mock without affecting global module mocks
used by other test files.
- Add explicit next/link mock for consistency
- Remove mock.clearAllMocks() from beforeEach/afterEach
- Navigation tests now rely on module mocks set at file level
- Prevents interference with other test files
Add afterEach hook to clear document.body.innerHTML between tests.
This prevents test pollution where elements from previous tests
interfere with subsequent test queries.
- Update all test files to use named mock variables instead of inline mocks
- Clear mock history in beforeEach instead of using mock.restore()
- Add default mock implementations stored at module level
- Document that tests should not use --randomize flag due to mock.module() limitations
- All 89 unit tests pass consistently without randomization
- Install Bun via mise
- Update package.json scripts to use Bun
- Migrate unit tests from Vitest to Bun test runner
- Migrate component tests from Vitest to Bun test runner
- Configure Bun with DOM environment for React Testing Library
- Keep Playwright for E2E tests (as planned)
- 93/100 tests passing (7 flaky tests when running all together, pass individually)
Fix the allowTies checkbox not being saved when editing tournaments. Added comprehensive unit and E2E tests to verify the fix.
Co-authored-by: David Gwilliam <dhgwilliam@gmail.com>
Co-committed-by: David Gwilliam <dhgwilliam@gmail.com>
- Fixed unused variables in unit tests (elo.test.ts, permissions.test.ts)
- Fixed unused variables in E2E tests (account-acceptance.test.ts, elo-ratings.test.ts, epic1-auth-registration.test.ts, global.setup.ts)
- Fixed 'any' type usage in EditTournamentForm.test.tsx and auth-simple.test.ts
- Fixed unescaped quotes and apostrophes in React components
- Fixed TypeScript type errors in Navigation.tsx, test-api/page.tsx, and matches/upload/page.tsx
- Fixed missing useEffect dependency in tournaments/[id]/entry/page.tsx
- Updated eslint config to exclude test-api directory
- All tests now pass linting and build successfully