- 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.
ESLint v10.x requires the new flat config format (eslint.config.js),
but the project uses the old .eslintrc.json format. Downgrading to
ESLint v8.x which supports the legacy configuration format.
- 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>