Skip to content

Commit 13adad3

Browse files
committed
try fix
1 parent 076c313 commit 13adad3

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

datadog-crashtracker/src/crash_info/errors_intake.rs

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ impl ErrorsIntakeConfig {
186186
};
187187

188188
// For direct submission, construct the proper intake URL
189-
let url = if settings.direct_submission_enabled && api_key.is_some() {
189+
let url = if settings.direct_submission_enabled && settings.api_key.is_some() {
190190
// Check for explicit errors intake URL first
191191
if let Some(ref errors_intake_url) = settings.errors_intake_dd_url {
192192
errors_intake_url.clone()
@@ -612,4 +612,40 @@ mod tests {
612612
std::env::remove_var("_DD_DIRECT_SUBMISSION_ENABLED");
613613
std::env::remove_var("DD_SITE");
614614
}
615+
616+
#[test]
617+
fn test_errors_intake_config_agent_with_api_key_but_no_direct() {
618+
let _lock = ENV_TEST_LOCK.lock().unwrap();
619+
620+
// Clear all environment variables first to isolate test
621+
std::env::remove_var("DD_TRACE_AGENT_URL");
622+
std::env::remove_var("DD_AGENT_HOST");
623+
std::env::remove_var("DD_TRACE_AGENT_PORT");
624+
std::env::remove_var("DD_API_KEY");
625+
std::env::remove_var("_DD_DIRECT_SUBMISSION_ENABLED");
626+
std::env::remove_var("DD_SITE");
627+
628+
// Test: API key is set but direct submission is NOT enabled
629+
// Should still use agent proxy
630+
std::env::set_var("DD_TRACE_AGENT_URL", "http://localhost:9126");
631+
std::env::set_var("DD_API_KEY", "test-key");
632+
// Note: _DD_DIRECT_SUBMISSION_ENABLED is NOT set (defaults to false)
633+
634+
let cfg = ErrorsIntakeConfig::from_env();
635+
let endpoint = cfg.endpoint().unwrap();
636+
637+
// Should use agent URL, not direct submission
638+
assert_eq!(endpoint.url.host(), Some("localhost"));
639+
assert_eq!(endpoint.url.port_u16(), Some(9126));
640+
641+
// Should use agent proxy path, not direct path
642+
assert_eq!(endpoint.url.path(), AGENT_ERRORS_INTAKE_URL_PATH);
643+
644+
// Should have no API key in endpoint since we're using agent proxy
645+
assert!(endpoint.api_key.is_none());
646+
647+
// Clean up test environment
648+
std::env::remove_var("DD_TRACE_AGENT_URL");
649+
std::env::remove_var("DD_API_KEY");
650+
}
615651
}

0 commit comments

Comments
 (0)