@@ -4,6 +4,7 @@ const { expect } = require('chai')
4
4
const semver = require ( 'semver' )
5
5
const agent = require ( '../../dd-trace/test/plugins/agent' )
6
6
const { ERROR_MESSAGE , ERROR_TYPE , ERROR_STACK } = require ( '../../dd-trace/src/constants' )
7
+ const net = require ( 'net' )
7
8
8
9
const clients = {
9
10
pg : pg => pg . Client
@@ -396,24 +397,37 @@ describe('Plugin', () => {
396
397
} )
397
398
398
399
it ( 'query text should contain traceparent' , done => {
399
- let queryText = ''
400
+ let seenTraceParent
401
+ let seenTraceId
402
+ let seenSpanId
403
+ const originalWrite = net . Socket . prototype . write
404
+ net . Socket . prototype . write = function ( buffer ) {
405
+ let strBuf = buffer . toString ( )
406
+ if ( strBuf . includes ( 'traceparent=\'' ) ) {
407
+ strBuf = strBuf . split ( '-' )
408
+ seenTraceParent = true
409
+ seenTraceId = strBuf [ 1 ]
410
+ seenSpanId = strBuf [ 2 ]
411
+ }
412
+ return originalWrite . apply ( this , arguments )
413
+ }
414
+
400
415
agent . use ( traces => {
401
416
const traceId = traces [ 0 ] [ 0 ] . trace_id . toString ( 16 ) . padStart ( 32 , '0' )
402
417
const spanId = traces [ 0 ] [ 0 ] . span_id . toString ( 16 ) . padStart ( 16 , '0' )
403
-
404
- expect ( queryText ) . to . equal (
405
- `/*dddbs='post',dde='tester',ddps='test',ddpv='8.4.0',` +
406
- `traceparent='00-${ traceId } -${ spanId } -00'*/ SELECT $1::text as message` )
418
+ expect ( seenTraceId ) . to . equal ( traceId )
419
+ expect ( seenSpanId ) . to . equal ( spanId )
407
420
} ) . then ( done , done )
408
421
409
422
client . query ( 'SELECT $1::text as message' , [ 'Hello World!' ] , ( err , result ) => {
410
423
if ( err ) return done ( err )
424
+ expect ( seenTraceParent ) . to . be . true
425
+ net . Socket . prototype . write = originalWrite
411
426
412
427
client . end ( ( err ) => {
413
428
if ( err ) return done ( err )
414
429
} )
415
430
} )
416
- queryText = client . queryQueue [ 0 ] . text
417
431
} )
418
432
it ( 'query should inject _dd.dbm_trace_injected into span' , done => {
419
433
agent . use ( traces => {
0 commit comments