Skip to content

Commit 694f353

Browse files
committed
add another test
1 parent acee689 commit 694f353

File tree

1 file changed

+78
-10
lines changed

1 file changed

+78
-10
lines changed

dd-trace-core/src/test/groovy/datadog/trace/core/TracingConfigPollerTest.groovy

Lines changed: 78 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,12 @@ class TracingConfigPollerTest extends DDCoreSpecification {
9191
priority == expectedPriority
9292

9393
where:
94-
service | env | clusterName | expectedPriority
95-
"test-service" | "staging" | null | 5
96-
"test-service" | "*" | null | 4
97-
"*" | "staging" | null | 3
98-
null | null | "test-cluster" | 2
99-
"*" | "*" | null | 1
94+
service | env | clusterName | expectedPriority
95+
"test-service" | "staging" | null | 5
96+
"test-service" | "*" | null | 4
97+
"*" | "staging" | null | 3
98+
null | null | "test-cluster" | 2
99+
"*" | "*" | null | 1
100100
}
101101

102102

@@ -179,10 +179,10 @@ class TracingConfigPollerTest extends DDCoreSpecification {
179179

180180
then:
181181
// Service level config should take precedence due to higher priority (4 vs 1)
182-
tracer.captureTraceConfig().serviceMapping == ["service-specific":"service-mapped"]
182+
tracer.captureTraceConfig().serviceMapping == ["service-specific": "service-mapped"]
183183
tracer.captureTraceConfig().traceSampleRate == 1.0 // should be clamped to 1.0
184-
tracer.captureTraceConfig().requestHeaderTags == ["x-custom-header":"custom.header"]
185-
tracer.captureTraceConfig().responseHeaderTags == ["x-custom-header":"custom.header"]
184+
tracer.captureTraceConfig().requestHeaderTags == ["x-custom-header": "custom.header"]
185+
tracer.captureTraceConfig().responseHeaderTags == ["x-custom-header": "custom.header"]
186186

187187
when:
188188
// Remove service level config
@@ -191,7 +191,7 @@ class TracingConfigPollerTest extends DDCoreSpecification {
191191

192192
then:
193193
// Should fall back to org level config
194-
tracer.captureTraceConfig().serviceMapping == ["org-service":"org-mapped"]
194+
tracer.captureTraceConfig().serviceMapping == ["org-service": "org-mapped"]
195195
tracer.captureTraceConfig().traceSampleRate == 0.7
196196
tracer.captureTraceConfig().requestHeaderTags == [:]
197197
tracer.captureTraceConfig().responseHeaderTags == [:]
@@ -209,4 +209,72 @@ class TracingConfigPollerTest extends DDCoreSpecification {
209209
cleanup:
210210
tracer?.close()
211211
}
212+
213+
def "test two org levels config setting different flags works"() {
214+
setup:
215+
def orgConfig1Key = ParsedConfigKey.parse("datadog/2/APM_TRACING/org_config/config1")
216+
def orgConfig2Key = ParsedConfigKey.parse("datadog/2/APM_TRACING/org_config/config2")
217+
def poller = Mock(ConfigurationPoller)
218+
def sco = new SharedCommunicationObjects(
219+
okHttpClient: Mock(OkHttpClient),
220+
monitoring: Mock(Monitoring),
221+
agentUrl: HttpUrl.get('https://example.com'),
222+
featuresDiscovery: Mock(DDAgentFeaturesDiscovery),
223+
configurationPoller: poller
224+
)
225+
226+
def updater
227+
228+
when:
229+
def tracer = CoreTracer.builder()
230+
.sharedCommunicationObjects(sco)
231+
.pollForTracingConfiguration()
232+
.build()
233+
234+
then:
235+
1 * poller.addListener(Product.APM_TRACING, _ as ProductListener) >> {
236+
updater = it[1] // capture config updater for further testing
237+
}
238+
and:
239+
tracer.captureTraceConfig().isTraceEnabled() == true
240+
tracer.captureTraceConfig().isDataStreamsEnabled() == false
241+
242+
when:
243+
// Add org level config with ApmTracing enabled
244+
updater.accept(orgConfig1Key, """
245+
{
246+
"service_target": {
247+
"service": "*",
248+
"env": "*"
249+
},
250+
"lib_config": {
251+
"tracing_enabled": true
252+
}
253+
}
254+
""".getBytes(StandardCharsets.UTF_8), null)
255+
256+
// Add second org level config with DataStreams enabled
257+
updater.accept(orgConfig2Key, """
258+
{
259+
"service_target": {
260+
"service": "*",
261+
"env": "*"
262+
},
263+
"lib_config": {
264+
"data_streams_enabled": true
265+
}
266+
}
267+
""".getBytes(StandardCharsets.UTF_8), null)
268+
269+
// Commit both configs
270+
updater.commit()
271+
272+
then:
273+
// Both org level configs should be merged, with data streams enabled
274+
tracer.captureTraceConfig().isTraceEnabled() == true
275+
tracer.captureTraceConfig().isDataStreamsEnabled() == true
276+
277+
cleanup:
278+
tracer?.close()
279+
}
212280
}

0 commit comments

Comments
 (0)