diff --git a/Sources/SharingGRDBCore/CloudKit/SyncEngine.swift b/Sources/SharingGRDBCore/CloudKit/SyncEngine.swift index f78e26dc..047a5cce 100644 --- a/Sources/SharingGRDBCore/CloudKit/SyncEngine.swift +++ b/Sources/SharingGRDBCore/CloudKit/SyncEngine.swift @@ -339,7 +339,7 @@ previousRecordTypeByTableName: [String: RecordType], currentRecordTypeByTableName: [String: RecordType] ) async throws { - let pendingRecordZoneChanges = try await userDatabase.read { db in + let pendingRecordZoneChanges = try await metadatabase.read { db in try PendingRecordZoneChange .select(\.pendingRecordZoneChange) .fetchAll(db) diff --git a/Sources/SharingGRDBCore/Internal/UserDatabase.swift b/Sources/SharingGRDBCore/Internal/UserDatabase.swift index 95299501..3fd2e24f 100644 --- a/Sources/SharingGRDBCore/Internal/UserDatabase.swift +++ b/Sources/SharingGRDBCore/Internal/UserDatabase.swift @@ -31,9 +31,7 @@ package struct UserDatabase { _ updates: @Sendable (Database) throws -> T ) async throws -> T { try await database.read { db in - try SyncEngine.$_isSynchronizingChanges.withValue(true) { - try updates(db) - } + try updates(db) } } diff --git a/Tests/SharingGRDBTests/CloudKitTests/UnattachedSyncEngineTests.swift b/Tests/SharingGRDBTests/CloudKitTests/UnattachedSyncEngineTests.swift new file mode 100644 index 00000000..ae726da1 --- /dev/null +++ b/Tests/SharingGRDBTests/CloudKitTests/UnattachedSyncEngineTests.swift @@ -0,0 +1,25 @@ +import CloudKit +import CustomDump +import InlineSnapshotTesting +import SharingGRDB +import SnapshotTestingCustomDump +import Testing + +extension BaseCloudKitTests { + @MainActor + final class UnattachedSyncEngineTests: @unchecked Sendable { + @available(iOS 17, macOS 14, tvOS 17, watchOS 10, *) + @Test func start() async throws { + let database = try DatabasePool(path: "\(NSTemporaryDirectory())\(UUID())") + _ = try await SyncEngine( + container: MockCloudContainer( + containerIdentifier: "iCloud.co.pointfree.Testing", + privateCloudDatabase: MockCloudDatabase(databaseScope: .private), + sharedCloudDatabase: MockCloudDatabase(databaseScope: .shared) + ), + userDatabase: UserDatabase(database: database), + tables: [] + ) + } + } +}