import Foundation
import WireProtocol
import HostRegistry

/// On macOS `Foundation.Host` (NSHost) shadows the package type in test
/// files that import Foundation — pin resolution for the whole test target.
typealias Host = HostRegistry.Host

/// Shared fixtures for HostRegistryTests. Pure helpers only — no state.
enum Fixtures {
    /// Builds a valid Host; traps loudly if the fixture URL is malformed
    /// (a broken fixture must fail the suite, not silently skip assertions).
    static func makeHost(
        name: String = "mac-studio",
        urlString: String = "http://192.168.1.5:3000",
        id: UUID = UUID()
    ) -> Host {
        guard let url = URL(string: urlString), let endpoint = HostEndpoint(baseURL: url) else {
            fatalError("test fixture URL invalid: \(urlString)")
        }
        return Host(id: id, name: name, endpoint: endpoint)
    }

    /// Unique UserDefaults suite name per test — isolates parallel tests.
    static func makeSuiteName() -> String {
        "HostRegistryTests." + UUID().uuidString
    }
}
