import XCTest @testable import LCFeatureControl final class FeatureControlAuthTests: XCTestCase { func testBearerAuthAddsAuthorizationHeader() async { let auth = FeatureControlBearerAuth { "jwt-123" } var headers: [String: String] = [:] await auth.authorize(&headers) XCTAssertEqual(headers["Authorization"], "Bearer jwt-123") } func testBearerAuthAddsNoHeaderWhenTokenIsNil() async { let auth = FeatureControlBearerAuth { nil } var headers: [String: String] = [:] await auth.authorize(&headers) XCTAssertNil(headers["Authorization"]) } func testHeaderAuthAddsExactHeadersOnly() async { let auth = FeatureControlHeaderAuth(headers: ["X-BFF-Session": "abc"]) var headers: [String: String] = [:] await auth.authorize(&headers) XCTAssertEqual(headers, ["X-BFF-Session": "abc"]) XCTAssertNil(headers["Authorization"]) } func testConfigurationDefaults() { let config = FeatureControlConfiguration(baseURL: "https://api.example.com", environment: "production", auth: FeatureControlHeaderAuth(headers: [:])) XCTAssertEqual(config.cacheTTL, 45) XCTAssertEqual(config.requestTimeout, 3) XCTAssertEqual(config.evaluatePath, "/api/feature-control/evaluate") XCTAssertEqual(config.notificationsPath, "/api/feature-control/notifications") XCTAssertEqual(config.telemetryPath, "/api/feature-control/telemetry/exposure") } }