fix: memories mobile sync for older clients (#32167)
fix: memories mobile sync for older clients (#32150) (cherry picked from commit 8d377bfef5a0c9d840bf2c19d155f9779387baeb) Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com> Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com>
This commit is contained in:
co-authored by
Daniel Dietzler
Santo Shakil
parent
1aede8d8c3
commit
ed3073624b
@@ -131,7 +131,7 @@ void main() {
|
||||
when(
|
||||
() => mockSyncStreamRepo.updateAssetsExifV1(any(), debugLabel: any(named: 'debugLabel')),
|
||||
).thenAnswer(successHandler);
|
||||
when(() => mockSyncStreamRepo.updateMemoriesV1(any())).thenAnswer(successHandler);
|
||||
when(() => mockSyncStreamRepo.updateMemoriesV2(any())).thenAnswer(successHandler);
|
||||
when(() => mockSyncStreamRepo.deleteMemoriesV1(any())).thenAnswer(successHandler);
|
||||
when(() => mockSyncStreamRepo.updateMemoryAssetsV1(any())).thenAnswer(successHandler);
|
||||
when(() => mockSyncStreamRepo.deleteMemoryAssetsV1(any())).thenAnswer(successHandler);
|
||||
@@ -320,7 +320,7 @@ void main() {
|
||||
await simulateEvents(events);
|
||||
|
||||
verifyInOrder([
|
||||
() => mockSyncStreamRepo.updateMemoriesV1(any()),
|
||||
() => mockSyncStreamRepo.updateMemoriesV2(any()),
|
||||
() => mockSyncApiRepo.ack(["5"]),
|
||||
() => mockSyncStreamRepo.deleteMemoriesV1(any()),
|
||||
() => mockSyncApiRepo.ack(["6"]),
|
||||
@@ -349,14 +349,14 @@ void main() {
|
||||
() => mockSyncApiRepo.ack(["1"]),
|
||||
() => mockSyncStreamRepo.updateMemoryAssetsV1(any()),
|
||||
() => mockSyncApiRepo.ack(["7"]),
|
||||
() => mockSyncStreamRepo.updateMemoriesV1(any()),
|
||||
() => mockSyncStreamRepo.updateMemoriesV2(any()),
|
||||
() => mockSyncApiRepo.ack(["5"]),
|
||||
]);
|
||||
verifyNever(() => mockAbortCallbackWrapper());
|
||||
});
|
||||
|
||||
test("handles memory sync failure gracefully", () async {
|
||||
when(() => mockSyncStreamRepo.updateMemoriesV1(any())).thenThrow(Exception("Memory sync failed"));
|
||||
when(() => mockSyncStreamRepo.updateMemoriesV2(any())).thenThrow(Exception("Memory sync failed"));
|
||||
|
||||
final events = [SyncStreamStub.memoryV1, SyncStreamStub.userV1Admin];
|
||||
|
||||
@@ -386,9 +386,22 @@ void main() {
|
||||
|
||||
await simulateEvents(events);
|
||||
|
||||
verify(() => mockSyncStreamRepo.updateMemoriesV1(any())).called(1);
|
||||
verify(() => mockSyncStreamRepo.updateMemoriesV2(any())).called(1);
|
||||
verify(() => mockSyncApiRepo.ack(["5"])).called(1);
|
||||
});
|
||||
|
||||
test("processes memory v2 events", () async {
|
||||
final events = [SyncStreamStub.memoryV2, SyncStreamStub.memoryToAssetV2];
|
||||
|
||||
await simulateEvents(events);
|
||||
|
||||
verifyInOrder([
|
||||
() => mockSyncStreamRepo.updateMemoriesV2(any()),
|
||||
() => mockSyncApiRepo.ack(["9"]),
|
||||
() => mockSyncStreamRepo.updateMemoryAssetsV1(any()),
|
||||
() => mockSyncApiRepo.ack(["10"]),
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
group("SyncStreamService - remote trash & restore", () {
|
||||
|
||||
+26
-1
@@ -47,7 +47,7 @@ abstract final class SyncStreamStub {
|
||||
|
||||
static final memoryV1 = SyncEvent(
|
||||
type: SyncEntityType.memoryV1,
|
||||
data: SyncMemoryV1(
|
||||
data: SyncMemoryV2(
|
||||
createdAt: DateTime(2023, 1, 1),
|
||||
data: {"year": 2023, "title": "Test Memory"},
|
||||
deletedAt: null,
|
||||
@@ -64,6 +64,25 @@ abstract final class SyncStreamStub {
|
||||
ack: "5",
|
||||
);
|
||||
|
||||
static final memoryV2 = SyncEvent(
|
||||
type: SyncEntityType.memoryV2,
|
||||
data: SyncMemoryV2(
|
||||
createdAt: DateTime(2023, 1, 1),
|
||||
data: {"year": 2023},
|
||||
deletedAt: null,
|
||||
hideAt: null,
|
||||
id: "memory-3",
|
||||
isSaved: false,
|
||||
memoryAt: DateTime(2023, 1, 1),
|
||||
ownerId: "user-1",
|
||||
seenAt: null,
|
||||
showAt: DateTime(2023, 1, 1),
|
||||
type: MemoryType.birthday,
|
||||
updatedAt: DateTime(2023, 1, 1),
|
||||
),
|
||||
ack: "9",
|
||||
);
|
||||
|
||||
static final memoryDeleteV1 = SyncEvent(
|
||||
type: SyncEntityType.memoryDeleteV1,
|
||||
data: SyncMemoryDeleteV1(memoryId: "memory-2"),
|
||||
@@ -76,6 +95,12 @@ abstract final class SyncStreamStub {
|
||||
ack: "7",
|
||||
);
|
||||
|
||||
static final memoryToAssetV2 = SyncEvent(
|
||||
type: SyncEntityType.memoryToAssetV2,
|
||||
data: SyncMemoryAssetV1(assetId: "asset-1", memoryId: "memory-3"),
|
||||
ack: "10",
|
||||
);
|
||||
|
||||
static final memoryToAssetDeleteV1 = SyncEvent(
|
||||
type: SyncEntityType.memoryToAssetDeleteV1,
|
||||
data: SyncMemoryAssetDeleteV1(assetId: "asset-2", memoryId: "memory-1"),
|
||||
|
||||
Reference in New Issue
Block a user