//
//  URLSession+Development.swift
//  Tusker
//
//  Created by Shadowfacts on 1/22/22.
//  Copyright © 2022 Shadowfacts. All rights reserved.
//

import Foundation

extension URLSession {
    
    #if targetEnvironment(simulator) && DEBUG
    static let appDefault = URLSession(configuration: .default, delegate: Delegate(), delegateQueue: nil)
    #else
    static let appDefault = URLSession.shared
    #endif
    
}

#if targetEnvironment(simulator) && DEBUG
private class Delegate: NSObject, URLSessionDelegate {
    func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
        // allows testing with self-signed certificates in development
        completionHandler(.useCredential, URLCredential(trust: challenge.protectionSpace.serverTrust!))
    }
}
#endif
