Adds three new test groups to test/unit/email_repository_impl_test.dart (54 → 57 tests)
Concurrent moves: two simultaneous moveEmail calls on the same email complete without DB corruption, and both changes are enqueued in pending_changes
SMTP auth failure: sendEmail for an IMAP account propagates a 535 exception thrown by a fake smtpConnect
IMAP UID validity change: a uidValidity mismatch between the stored checkpoint and the server triggers a full re-sync that deletes stale local emails and updates the checkpoint to the new validity value
Extends _makeRepos() with optional imapConnect/smtpConnect parameters so each test can inject its own transport fake without affecting others
Three new test groups each pass in isolation with --name filter
## Summary
- Adds three new test groups to `test/unit/email_repository_impl_test.dart` (54 → 57 tests)
- **Concurrent moves**: two simultaneous `moveEmail` calls on the same email complete without DB corruption, and both changes are enqueued in `pending_changes`
- **SMTP auth failure**: `sendEmail` for an IMAP account propagates a `535` exception thrown by a fake `smtpConnect`
- **IMAP UID validity change**: a `uidValidity` mismatch between the stored checkpoint and the server triggers a full re-sync that deletes stale local emails and updates the checkpoint to the new validity value
- Extends `_makeRepos()` with optional `imapConnect`/`smtpConnect` parameters so each test can inject its own transport fake without affecting others
## Test plan
- [x] `task check-fast` passes (dart format + analyze + 271 tests green)
- [x] Three new test groups each pass in isolation with `--name` filter
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
test/unit/email_repository_impl_test.dart(54 → 57 tests)moveEmailcalls on the same email complete without DB corruption, and both changes are enqueued inpending_changessendEmailfor an IMAP account propagates a535exception thrown by a fakesmtpConnectuidValiditymismatch between the stored checkpoint and the server triggers a full re-sync that deletes stale local emails and updates the checkpoint to the new validity value_makeRepos()with optionalimapConnect/smtpConnectparameters so each test can inject its own transport fake without affecting othersTest plan
task check-fastpasses (dart format + analyze + 271 tests green)--namefilter