Skip to content

Commit 2339458

Browse files
authored
fix(DataStore): Avoid model name from mutation sync in ModelSyncedEventEmitter (#1454)
1 parent 78bf700 commit 2339458

File tree

5 files changed

+12
-8
lines changed

5 files changed

+12
-8
lines changed

AmplifyPlugins/DataStore/AWSDataStoreCategoryPlugin/Sync/InitialSync/InitialSyncOperation.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ final class InitialSyncOperation: AsynchronousOperation {
185185

186186
reconciliationQueue.offer(items, modelSchema: modelSchema)
187187
for item in items {
188-
initialSyncOperationTopic.send(.enqueued(item))
188+
initialSyncOperationTopic.send(.enqueued(item, modelName: modelSchema.name))
189189
}
190190

191191
if let nextToken = syncQueryResult.nextToken, recordsReceived < syncMaxRecords {

AmplifyPlugins/DataStore/AWSDataStoreCategoryPlugin/Sync/InitialSync/InitialSyncOperationEvent.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ enum InitialSyncOperationEvent {
1515

1616
/// Published when a remote model is enqueued for local store reconciliation.
1717
/// Used by `ModelSyncedEventEmitter` for record counting.
18-
case enqueued(MutationSync<AnyModel>)
18+
case enqueued(MutationSync<AnyModel>, modelName: ModelName)
1919

2020
/// Published when the sync operation has completed and all remote models have been enqueued for reconciliation.
2121
/// Used by `ModelSyncedEventEmitter` to determine when to send `ModelSyncedEvent`

AmplifyPlugins/DataStore/AWSDataStoreCategoryPlugin/Sync/InitialSync/ModelSyncedEventEmitter.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ final class ModelSyncedEventEmitter {
7272
switch value {
7373
case .started(let modelName, _):
7474
return modelSchema.name == modelName
75-
case .enqueued(let mutationSync):
76-
return modelSchema.name == mutationSync.model.modelName
75+
case .enqueued(_, let modelName):
76+
return modelSchema.name == modelName
7777
case .finished(let modelName):
7878
return modelSchema.name == modelName
7979
}

AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginTests/Sync/InitialSync/InitialSyncOperationTests.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,9 @@ class InitialSyncOperationTests: XCTestCase {
302302
XCTAssertEqual(modelName, "MockSynced")
303303
XCTAssertEqual(syncType, .fullSync)
304304
syncStartedReceived.fulfill()
305-
case .enqueued(let returnedValue):
305+
case .enqueued(let returnedValue, let modelName):
306306
XCTAssertTrue(returnedValue.syncMetadata == mutationSync.syncMetadata)
307+
XCTAssertEqual(modelName, "MockSynced")
307308
offeredValueReceived.fulfill()
308309
case .finished(modelName: let modelName):
309310
XCTAssertEqual(modelName, "MockSynced")

AmplifyPlugins/DataStore/AWSDataStoreCategoryPluginTests/Sync/InitialSync/SyncEventEmitterTests.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ class SyncEventEmitterTests: XCTestCase {
8383

8484
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.started(modelName: Post.modelName,
8585
syncType: .fullSync))
86-
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.enqueued(anyPostMutationSync))
86+
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.enqueued(anyPostMutationSync,
87+
modelName: Post.modelName))
8788
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.finished(modelName: Post.modelName))
8889

8990
reconciliationQueue?.incomingEventSubject.send(.mutationEventApplied(postMutationEvent))
@@ -255,12 +256,14 @@ class SyncEventEmitterTests: XCTestCase {
255256

256257
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.started(modelName: Post.modelName,
257258
syncType: .fullSync))
258-
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.enqueued(anyPostMutationSync))
259+
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.enqueued(anyPostMutationSync,
260+
modelName: Post.modelName))
259261
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.finished(modelName: Post.modelName))
260262

261263
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.started(modelName: Comment.modelName,
262264
syncType: .fullSync))
263-
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.enqueued(anyCommentMutationSync))
265+
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.enqueued(anyCommentMutationSync,
266+
modelName: Comment.modelName))
264267
initialSyncOrchestrator?.initialSyncOrchestratorTopic.send(.finished(modelName: Comment.modelName))
265268

266269
reconciliationQueue?.incomingEventSubject.send(.mutationEventApplied(postMutationEvent))

0 commit comments

Comments
 (0)