diff --git a/TablePro/Core/Sync/CloudKitSyncEngine.swift b/TablePro/Core/Sync/CloudKitSyncEngine.swift index 423e757e6..c0129b780 100644 --- a/TablePro/Core/Sync/CloudKitSyncEngine.swift +++ b/TablePro/Core/Sync/CloudKitSyncEngine.swift @@ -55,7 +55,7 @@ actor CloudKitSyncEngine { } func currentAccountId() async throws -> String? { - guard let container else { return nil } + guard let container else { throw SyncError.accountUnavailable } return try await container.userRecordID().recordName } diff --git a/TableProTests/Core/Sync/CloudKitSyncEngineTests.swift b/TableProTests/Core/Sync/CloudKitSyncEngineTests.swift index e4d515546..16c6ebae0 100644 --- a/TableProTests/Core/Sync/CloudKitSyncEngineTests.swift +++ b/TableProTests/Core/Sync/CloudKitSyncEngineTests.swift @@ -64,11 +64,12 @@ struct CloudKitSyncEngineTests { } } - @Test("currentAccountId returns nil without iCloud entitlement") - func currentAccountIdReturnsNil() async throws { + @Test("currentAccountId throws accountUnavailable without iCloud entitlement") + func currentAccountIdThrows() async throws { try skipIfEntitled() let engine = CloudKitSyncEngine() - let accountId = try await engine.currentAccountId() - #expect(accountId == nil) + await #expect(throws: SyncError.accountUnavailable) { + _ = try await engine.currentAccountId() + } } }