From cc84c8ff4ff720ebed269349e4b528170e284b45 Mon Sep 17 00:00:00 2001 From: bponders12-cell Date: Tue, 1 Sep 2026 21:06:09 -0400 Subject: [PATCH] Test restored rides retain persisted cloud identity --- test/cloud_ride_identity_migration_test.dart | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/cloud_ride_identity_migration_test.dart b/test/cloud_ride_identity_migration_test.dart index a6f1155..43fdbbe 100644 --- a/test/cloud_ride_identity_migration_test.dart +++ b/test/cloud_ride_identity_migration_test.dart @@ -95,4 +95,28 @@ void main() { final rideId = await db.startRide(); expect(await db.getCloudRideId(rideId), startsWith('ride_')); }); + + test('a restored ride keeps its cloud identity even when its local ID changes', () async { + const cloudId = 'ride_9f4d8a3e2b1c7d6e5f4a3b2c1d0e9f8a'; + final original = AppDatabase.forTesting(NativeDatabase.memory()); + final restored = AppDatabase.forTesting(NativeDatabase.memory()); + addTearDown(original.close); + addTearDown(restored.close); + + final originalId = await original.startRide(); + await original.customStatement( + 'UPDATE rides SET cloud_ride_id = ? WHERE id = ?', + [cloudId, originalId], + ); + expect(await original.getCloudRideId(originalId), cloudId); + + final restoredId = await restored.startRide(); + await restored.customStatement( + 'UPDATE rides SET cloud_ride_id = ? WHERE id = ?', + [cloudId, restoredId], + ); + + expect(restoredId, isNot(originalId)); + expect(await restored.getCloudRideId(restoredId), cloudId); + }); }