Skip to content

Commit 604beea

Browse files
Add publisher request host override regression test
1 parent 5a90e9a commit 604beea

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

crates/trusted-server-core/src/publisher.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,6 +1316,44 @@ mod tests {
13161316
);
13171317
}
13181318

1319+
#[tokio::test]
1320+
async fn publisher_request_sends_configured_host_header_override() {
1321+
let mut settings = create_test_settings();
1322+
settings.publisher.origin_host_header_override = Some("www.example.com".to_string());
1323+
let registry =
1324+
IntegrationRegistry::new(&settings).expect("should create integration registry");
1325+
let stub = Arc::new(StubHttpClient::new());
1326+
stub.push_response(200, b"origin response".to_vec());
1327+
let services = build_services_with_http_client(
1328+
Arc::clone(&stub) as Arc<dyn crate::platform::PlatformHttpClient>
1329+
);
1330+
let req = HttpRequest::builder()
1331+
.method(Method::GET)
1332+
.uri("https://publisher.example/page")
1333+
.header(header::HOST, "publisher.example")
1334+
.body(EdgeBody::empty())
1335+
.expect("should build request");
1336+
1337+
let _ = handle_publisher_request(&settings, &registry, &services, req)
1338+
.await
1339+
.expect("should proxy publisher request");
1340+
1341+
let recorded_headers = stub.recorded_request_headers();
1342+
let outbound_headers = recorded_headers
1343+
.first()
1344+
.expect("should record one outbound request");
1345+
let outbound_host = outbound_headers
1346+
.iter()
1347+
.find(|(name, _)| name.eq_ignore_ascii_case("host"))
1348+
.map(|(_, value)| value.as_str());
1349+
1350+
assert_eq!(
1351+
outbound_host,
1352+
Some("www.example.com"),
1353+
"should send configured host override to outbound request"
1354+
);
1355+
}
1356+
13191357
#[test]
13201358
fn stream_publisher_body_preserves_gzip_round_trip() {
13211359
use flate2::write::GzEncoder;

0 commit comments

Comments
 (0)