utils/crdt_sync_dart/test
Krzysztof kuhy Rudnicki feaaf69103 Accept an empty password when parsing a stored Firebase account
Both the Google one-tap path and the seeded-session path deliberately write
`FirebaseAccount(email: ..., password: '')` -- on those devices the refresh
token in the keystore is the credential, and there is no password to store.

`tryParse` rejected exactly that blob. So a device signed in with Google
wrote an account marker it could never read back: every later launch saw
"not configured", fell through to the mirror, and left a perfectly good
refresh token unused in the keystore beside it.

Only widens what parses, so no caller that previously got an account back
can regress. Every call site already guards `password.isEmpty` and passes
null for it -- meaning "no password on this device" -- which is precisely
the case this now lets them see. An empty *email* stays rejected: it
carries no identity at all.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CFSGeWxHPY5rHUGrPqhcmG
2026-08-22 17:19:49 +02:00
..
device_test.dart Add DeviceIdentity and a legacy device id for the uuid migration 2026-08-09 16:54:33 +02:00
firebase_account_provisioning_test.dart Let a desktop wrapper provision the sync account, no UI required 2026-08-09 21:33:22 +02:00
firebase_auth_rest_google_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
firebase_auth_rest_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
firebase_auth_rest_tokens_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
firebase_auth_rest_uid_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
firebase_client_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
firebase_client_writes_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
firebase_config_client_google_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
firebase_config_client_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
firebase_config_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
firebase_settings_test.dart Accept an empty password when parsing a stored Firebase account 2026-08-22 17:19:49 +02:00
github_client_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
github_client_writes_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
hlc_test.dart Initial implementation: unified CRDT merge scheme + GitHub sync transport 2026-07-05 20:48:07 +02:00
log_test.dart Initial implementation: unified CRDT merge scheme + GitHub sync transport 2026-07-05 20:48:07 +02:00
mirror_store_fallback_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
mirror_store_reads_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
mirror_store_revisions_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
mirror_store_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
record_test.dart Fix wire-format key mismatch with Python (deletedHlc -> deleted_hlc) 2026-07-05 20:55:22 +02:00
secure_credential_store_test.dart crdt_sync_dart 0.5.1: a shared secure credential store 2026-08-04 23:01:54 +02:00
store_test.dart Add LogStore local-persistence layer to crdt_sync (v0.2.0) 2026-07-11 22:19:34 +02:00
sync_revisions_backends_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
sync_revisions_order_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
sync_revisions_peers_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
sync_revisions_persistence_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
sync_revisions_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
sync_skips_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00
sync_test.dart dart: split ten oversized test files by group 2026-08-22 14:54:35 +02:00