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) } }