- Set explicit min/max password length in Better Auth config (8-128 chars)
- Fix CSV upload tests to use multipart/form-data instead of data
- Add @chromium-admin annotations to tests requiring admin access
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)
## Summary
This PR fixes the release workflow to properly handle version bumping on PR merge and uses the new Docker registry authentication secrets.
## Changes
### Release Workflow (release.yml)
- **Version Bumping**: Now automatically bumps version on PR merge
- Determines bump type from commit messages (major/minor/patch)
- Commits version bump to `package.json` and `CHANGELOG.md`
- Creates git tag for the release
- **Docker Registry Auth**: Uses `DOCKER_LOGIN` and `DOCKER_PASSWORD` secrets
- Falls back gracefully if secrets are not configured
- **Tag Handling**: Checks if tag exists before creating (prevents failures)
### PR Workflow (pr.yml) - NEW
- Runs unit tests on every PR
- Analyzes commits to suggest bump type
- Comments the suggested bump type on the PR
### Documentation
- Added `WORKFLOW_ARCHITECTURE.md` explaining the workflow design
## Workflow Architecture
**Two-step process:**
1. **PR Workflow** (on PR): Analyzes commits and suggests bump type
2. **Release Workflow** (on merge): Bumps version, creates tag, builds Docker image
## Benefits
1. **No CI Loops**: Version bump commits are detected and skipped
2. **Clear Communication**: PR comments inform developers of version impact
3. **Semantic Versioning**: Automated adherence to semver rules
4. **Traceability**: Git tags and changelog reflect all changes
## Testing
The new workflows will be tested when this PR is merged.
Closes#13 (Add database test safety configuration)
Reviewed-on: #17
Co-authored-by: David Gwilliam <dhgwilliam@gmail.com>
Co-committed-by: David Gwilliam <dhgwilliam@gmail.com>
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>