Closes #392 This commit localizes SynchronizerError to better support Error messages
This commit is contained in:
parent
2fcfa6fdbe
commit
e131ccbd07
|
@ -0,0 +1,45 @@
|
||||||
|
//
|
||||||
|
// SynchronizerError+LocalizedError.swift
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Created by Francisco Gindre on 7/11/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
extension SynchronizerError: LocalizedError {
|
||||||
|
public var errorDescription: String? {
|
||||||
|
switch self {
|
||||||
|
case .initFailed(message: let message):
|
||||||
|
return "Failed to initialize. Message: \(message)"
|
||||||
|
case .notPrepared:
|
||||||
|
return "Synchronizer is not prepared. run `prepare()` before `start()"
|
||||||
|
case .syncFailed:
|
||||||
|
return "Synchronizer failed"
|
||||||
|
case .connectionFailed(message: let message):
|
||||||
|
return "Connection Failed. Error: \(message)"
|
||||||
|
case .generalError(message: let message):
|
||||||
|
return "An error ocurred when syncing. Message: \(message)"
|
||||||
|
case .maxRetryAttemptsReached(attempts: let attempts):
|
||||||
|
return "An error occured. We made \(attempts) retry attempts."
|
||||||
|
case .connectionError(status: let status, message: let message):
|
||||||
|
return "There's a connection error. Status #\(status). Message: \(message)"
|
||||||
|
case .networkTimeout:
|
||||||
|
return "Network Timeout. Please check Internet connection"
|
||||||
|
case .uncategorized(underlyingError: let underlyingError):
|
||||||
|
return "Uncategorized Error. Underlying Error: \(underlyingError)"
|
||||||
|
case .criticalError:
|
||||||
|
return "A critical Error Ocurred"
|
||||||
|
case .parameterMissing(underlyingError: let underlyingError):
|
||||||
|
return "Sapling parameters are not present or couldn't be downloaded. Error: \(underlyingError)."
|
||||||
|
case .rewindError(underlyingError: let underlyingError):
|
||||||
|
return "Error when rescanning. Error: \(underlyingError)"
|
||||||
|
case .rewindErrorUnknownArchorHeight:
|
||||||
|
return "Error when rescanning. We couldn't find a point in time to rewing. Please attempt a full re-scan"
|
||||||
|
case .invalidAccount:
|
||||||
|
return "We couldn't find this account number."
|
||||||
|
case .lightwalletdValidationFailed(underlyingError: let underlyingError):
|
||||||
|
return "We connected to the network but we couldn't verify the server. `lightwalletdValidationFailed` error: \(underlyingError)."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,21 +11,21 @@ import Foundation
|
||||||
|
|
||||||
/// Represents errors thrown by a Synchronizer
|
/// Represents errors thrown by a Synchronizer
|
||||||
public enum SynchronizerError: Error {
|
public enum SynchronizerError: Error {
|
||||||
case initFailed(message: String)
|
case initFailed(message: String) // ZcashLightClientKit.SynchronizerError error 0.
|
||||||
case notPrepared
|
case notPrepared // ZcashLightClientKit.SynchronizerError error 9.
|
||||||
case syncFailed
|
case syncFailed // ZcashLightClientKit.SynchronizerError error 10.
|
||||||
case connectionFailed(message: Error)
|
case connectionFailed(message: Error) // ZcashLightClientKit.SynchronizerError error 1.
|
||||||
case generalError(message: String)
|
case generalError(message: String) // ZcashLightClientKit.SynchronizerError error 2.
|
||||||
case maxRetryAttemptsReached(attempts: Int)
|
case maxRetryAttemptsReached(attempts: Int) // ZcashLightClientKit.SynchronizerError error 3.
|
||||||
case connectionError(status: Int, message: String)
|
case connectionError(status: Int, message: String) // ZcashLightClientKit.SynchronizerError error 4.
|
||||||
case networkTimeout
|
case networkTimeout // ZcashLightClientKit.SynchronizerError error 11.
|
||||||
case uncategorized(underlyingError: Error)
|
case uncategorized(underlyingError: Error) // ZcashLightClientKit.SynchronizerError error 5.
|
||||||
case criticalError
|
case criticalError // ZcashLightClientKit.SynchronizerError error 12.
|
||||||
case parameterMissing(underlyingError: Error)
|
case parameterMissing(underlyingError: Error) // ZcashLightClientKit.SynchronizerError error 6.
|
||||||
case rewindError(underlyingError: Error)
|
case rewindError(underlyingError: Error) // ZcashLightClientKit.SynchronizerError error 7.
|
||||||
case rewindErrorUnknownArchorHeight
|
case rewindErrorUnknownArchorHeight // ZcashLightClientKit.SynchronizerError error 13.
|
||||||
case invalidAccount
|
case invalidAccount // ZcashLightClientKit.SynchronizerError error 14.
|
||||||
case lightwalletdValidationFailed(underlyingError: Error)
|
case lightwalletdValidationFailed(underlyingError: Error) // ZcashLightClientKit.SynchronizerError error 8.
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ShieldFundsError: Error {
|
public enum ShieldFundsError: Error {
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
//
|
||||||
|
// ErrorLocalizationTests.swift
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Created by Francisco Gindre on 7/11/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
import XCTest
|
||||||
|
import ZcashLightClientKit
|
||||||
|
class ErrorLocalizationTests: XCTestCase {
|
||||||
|
|
||||||
|
func testLocalizedError() throws {
|
||||||
|
let sychronizerError = SynchronizerError.networkTimeout as Error
|
||||||
|
XCTAssertEqual(sychronizerError.localizedDescription, "Network Timeout. Please check Internet connection")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue