16 lines
828 B
Swift
16 lines
828 B
Swift
import MusicAssistantCore
|
|
import XCTest
|
|
|
|
final class AIRequestStateTests: XCTestCase {
|
|
func testPresenterMapsOfflineAndProviderFailures() {
|
|
let presenter = AIProviderErrorPresenter()
|
|
|
|
XCTAssertEqual(presenter.state(for: URLError(.notConnectedToInternet)), .offline)
|
|
XCTAssertEqual(presenter.state(for: OpenAIClientError.missingAPIKey), .missingConfiguration)
|
|
XCTAssertEqual(presenter.state(for: OpenAIClientError.rateLimited(retryAfter: 30)), .rateLimited(retryAfter: 30))
|
|
XCTAssertEqual(presenter.state(for: OpenAIClientError.serverError(503)), .unavailable)
|
|
XCTAssertEqual(presenter.state(for: OpenAIClientError.invalidResponse), .invalidResponse)
|
|
XCTAssertEqual(presenter.state(for: AIServiceCapabilityError.discussionNotSupported), .unsupportedCapability)
|
|
}
|
|
}
|