test: exercise external header auth provider

This commit is contained in:
pakrym-oai
2026-07-07 17:35:37 -07:00
parent de64bf2f6b
commit 5abff7e680
+25 -2
View File
@@ -1,5 +1,10 @@
use std::sync::Arc;
use codex_login::AuthHeaders;
use codex_login::CodexAuth;
use codex_login::ExternalAuth;
use codex_login::ExternalAuthFuture;
use codex_login::ExternalAuthRefreshContext;
use core_test_support::responses::ev_completed;
use core_test_support::responses::ev_response_created;
use core_test_support::responses::mount_sse_once;
@@ -11,8 +16,21 @@ use reqwest::header::AUTHORIZATION;
use reqwest::header::HeaderMap;
use reqwest::header::HeaderValue;
#[derive(Clone)]
struct StaticExternalAuth(CodexAuth);
impl ExternalAuth for StaticExternalAuth {
fn resolve(&self) -> ExternalAuthFuture<'_, CodexAuth> {
Box::pin(async { Ok(self.0.clone()) })
}
fn refresh(&self, _context: ExternalAuthRefreshContext) -> ExternalAuthFuture<'_, CodexAuth> {
self.resolve()
}
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn header_auth_is_attached_to_responses_requests() -> anyhow::Result<()> {
async fn external_header_auth_is_attached_to_responses_requests() -> anyhow::Result<()> {
skip_if_no_network!(Ok(()));
let server = start_mock_server().await;
@@ -24,8 +42,13 @@ async fn header_auth_is_attached_to_responses_requests() -> anyhow::Result<()> {
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 external_auth = StaticExternalAuth(CodexAuth::Headers(AuthHeaders::new(headers)));
let mut builder = test_codex();
let test = builder.build_with_auto_env(&server).await?;
test.thread_manager
.auth_manager()
.set_external_auth(Arc::new(external_auth))
.await?;
test.submit_turn("hello").await?;