use codex_login::AuthHeaders; use codex_login::CodexAuth; use core_test_support::responses::ev_completed; use core_test_support::responses::ev_response_created; use core_test_support::responses::mount_sse_once; use core_test_support::responses::sse; use core_test_support::responses::start_mock_server; use core_test_support::skip_if_no_network; use core_test_support::test_codex::test_codex; use http::HeaderMap; use http::HeaderValue; use http::header::AUTHORIZATION; #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn header_auth_is_attached_to_responses_requests() -> anyhow::Result<()> { skip_if_no_network!(Ok(())); let server = start_mock_server().await; let response_mock = mount_sse_once( &server, sse(vec![ev_response_created("resp-1"), ev_completed("resp-1")]), ) .await; let mut headers = HeaderMap::new(); headers.insert(AUTHORIZATION, HeaderValue::from_static("Bearer external")); headers.insert("x-external-auth", HeaderValue::from_static("enabled")); let mut builder = test_codex().with_auth(CodexAuth::Headers(AuthHeaders::new(headers))); let test = builder.build_with_auto_env(&server).await?; test.submit_turn("hello").await?; let request = response_mock.single_request(); assert_eq!( request.header("authorization").as_deref(), Some("Bearer external") ); assert_eq!( request.header("x-external-auth").as_deref(), Some("enabled") ); Ok(()) }