@@ -702,6 +702,44 @@ abstract class HttpServerTest<SERVER> extends WithHttpServer<SERVER> {
702702 ' GET' | null | ' x-datadog-test-request-header' | ' bar' | [ ' request_header_tag' : ' bar' ]
703703 }
704704
705+ def " test response header tag mapping" () {
706+ setup :
707+ assumeTrue(testResponseHeadersMapping() && testEncodedQuery())
708+ def endpoint = QUERY_ENCODED_BOTH
709+ def method = ' GET'
710+ def body = null
711+ def header = ' response_header_tag'
712+ def mapping = ' mapped_response_header_tag'
713+ def tags = [' mapped_response_header_tag' : ' response_header_value' ]
714+ def more_tags = [' mapped_response_header_tag' : " another_response_header_value" ]
715+
716+ injectSysConfig(HTTP_SERVER_TAG_QUERY_STRING , " true" )
717+ injectSysConfig(RESPONSE_HEADER_TAGS , " $header :$mapping " )
718+ def request = request(endpoint, method, body)
719+ .build()
720+ def response = client. newCall(request). execute()
721+
722+ expect :
723+ response. code() == endpoint. status
724+ response. body(). string() == endpoint. body
725+
726+ and :
727+ assertTraces(1 ) {
728+ trace(spanCount(endpoint)) {
729+ sortSpansByStart()
730+ serverSpan(it, null , null , method, endpoint, tags)
731+ serverSpan(it, null , null , method, endpoint, more_tags) // ...
732+ if (hasHandlerSpan()) {
733+ handlerSpan(it, endpoint)
734+ }
735+ controllerSpan(it)
736+ if (hasResponseSpan(endpoint)) {
737+ responseSpan(it, endpoint)
738+ }
739+ }
740+ }
741+ }
742+
705743 @Flaky (value = " https://github.com/DataDog/dd-trace-java/issues/4690" , suites = [" MuleHttpServerForkedTest" ])
706744 def " test QUERY_ENCODED_BOTH with response header x-ig-response-header tag mapping" () {
707745 setup :
0 commit comments