import XCTest @testable import Yuvomi final class ServerMetadataTests: XCTestCase { private let bootstrap = Data(#"{"app_name":"Yuvomi","setup_required":false,"password_reset_enabled":true}"#.utf8) private let authentication = Data(#"{"enabled":false,"password_login_enabled":true}"#.utf8) func testAcceptsActualAnonymousMetadataWithoutVersion() throws { try ServerMetadata.validate(bootstrap: bootstrap, authentication: authentication) } func testRejectsNumericBooleanAndMissingAuthenticationMetadata() { let numeric = Data(#"{"enabled":1,"password_login_enabled":true}"#.utf8) XCTAssertThrowsError(try ServerMetadata.validate(bootstrap: bootstrap, authentication: numeric)) XCTAssertThrowsError(try ServerMetadata.validate(bootstrap: bootstrap, authentication: Data("{}".utf8))) } func testRejectsProxyHtmlAndInvalidJson() { XCTAssertThrowsError( try ServerMetadata.validate(bootstrap: Data("SSO proxy".utf8), authentication: authentication)) XCTAssertThrowsError(try ServerMetadata.validate(bootstrap: Data("null".utf8), authentication: authentication)) } }