From bf3ee7a1d71629400697382da7b78ff9595f91bb Mon Sep 17 00:00:00 2001 From: Ilyas Hallak Date: Sun, 19 Oct 2025 10:32:44 +0200 Subject: [PATCH] fix: Add MockCheckServerReachabilityUseCase implementation --- URLShare/SimpleAPI.swift | 2 +- readeck/UI/Factory/MockUseCaseFactory.swift | 14 ++++++++++++++ readeck/UI/Menu/OfflineBookmarksViewModel.swift | 2 +- readeck/UI/Menu/PadSidebarView.swift | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/URLShare/SimpleAPI.swift b/URLShare/SimpleAPI.swift index 6bdd019..4d20450 100644 --- a/URLShare/SimpleAPI.swift +++ b/URLShare/SimpleAPI.swift @@ -22,7 +22,7 @@ class SimpleAPI { } do { - let (data, response) = try await URLSession.shared.data(for: request) + let (_, response) = try await URLSession.shared.data(for: request) if let httpResponse = response as? HTTPURLResponse, 200...299 ~= httpResponse.statusCode { logger.info("Server is reachable") diff --git a/readeck/UI/Factory/MockUseCaseFactory.swift b/readeck/UI/Factory/MockUseCaseFactory.swift index 21dc142..61dba4a 100644 --- a/readeck/UI/Factory/MockUseCaseFactory.swift +++ b/readeck/UI/Factory/MockUseCaseFactory.swift @@ -9,6 +9,10 @@ import Foundation import Combine class MockUseCaseFactory: UseCaseFactory { + func makeCheckServerReachabilityUseCase() -> any PCheckServerReachabilityUseCase { + MockCheckServerReachabilityUseCase() + } + func makeOfflineBookmarkSyncUseCase() -> any POfflineBookmarkSyncUseCase { MockOfflineBookmarkSyncUseCase() } @@ -224,6 +228,16 @@ class MockSaveCardLayoutUseCase: PSaveCardLayoutUseCase { } } +class MockCheckServerReachabilityUseCase: PCheckServerReachabilityUseCase { + func execute() async -> Bool { + return true + } + + func getServerInfo() async throws -> ServerInfo { + return ServerInfo(version: "1.0.0", buildDate: nil, userAgent: nil, isReachable: true) + } +} + extension Bookmark { static let mock: Bookmark = .init( id: "123", title: "title", url: "https://example.com", href: "https://example.com", description: "description", authors: ["Tom"], created: "", published: "", updated: "", siteName: "example.com", site: "https://example.com", readingTime: 2, wordCount: 20, hasArticle: true, isArchived: false, isDeleted: false, isMarked: true, labels: ["Test"], lang: "EN", loaded: false, readProgress: 0, documentType: "", state: 0, textDirection: "ltr", type: "", resources: .init(article: nil, icon: nil, image: nil, log: nil, props: nil, thumbnail: nil) diff --git a/readeck/UI/Menu/OfflineBookmarksViewModel.swift b/readeck/UI/Menu/OfflineBookmarksViewModel.swift index db416f2..35139e1 100644 --- a/readeck/UI/Menu/OfflineBookmarksViewModel.swift +++ b/readeck/UI/Menu/OfflineBookmarksViewModel.swift @@ -12,7 +12,7 @@ class OfflineBookmarksViewModel { private var completionTimerActive = false init(_ factory: UseCaseFactory = DefaultUseCaseFactory.shared) { - self.syncUseCase = factory.makeOfflineBookmarkSyncUseCase() + self.syncUseCase = factory.makeOfflineBookmarkSyncUseCase() setupBindings() refreshState() } diff --git a/readeck/UI/Menu/PadSidebarView.swift b/readeck/UI/Menu/PadSidebarView.swift index 4910aa5..a373b48 100644 --- a/readeck/UI/Menu/PadSidebarView.swift +++ b/readeck/UI/Menu/PadSidebarView.swift @@ -13,7 +13,7 @@ struct PadSidebarView: View { @State private var selectedTag: BookmarkLabel? @EnvironmentObject var playerUIState: PlayerUIState @EnvironmentObject var appSettings: AppSettings - @State private var offlineBookmarksViewModel = OfflineBookmarksViewModel(syncUseCase: DefaultUseCaseFactory.shared.makeOfflineBookmarkSyncUseCase()) + @State private var offlineBookmarksViewModel = OfflineBookmarksViewModel() private let sidebarTabs: [SidebarTab] = [.search, .all, .unread, .favorite, .archived, .article, .videos, .pictures, .tags]