Skip to content

Commit d894e28

Browse files
authored
update unit tests
1 parent 5574b16 commit d894e28

File tree

1 file changed

+30
-24
lines changed

1 file changed

+30
-24
lines changed

aws-distro-opentelemetry-node-autoinstrumentation/test/patches/instrumentation-patch.test.ts

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import {
1111
Tracer,
1212
AttributeValue,
1313
TextMapSetter,
14+
defaultTextMapSetter,
15+
ROOT_CONTEXT,
1416
} from '@opentelemetry/api';
1517
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
1618
import { Instrumentation } from '@opentelemetry/instrumentation';
@@ -539,6 +541,8 @@ describe('InstrumentationPatchTest', () => {
539541
let mockedMiddlewareStackInternal: any;
540542
let mockedMiddlewareStack;
541543
let send;
544+
let middlewareArgsHeader: any;
545+
const testXrayTraceHeader = 'test-xray-trace-header';
542546

543547
beforeEach(async () => {
544548
// Clear environment variables before each test
@@ -550,49 +554,51 @@ describe('InstrumentationPatchTest', () => {
550554
['_getV3SmithyClientSendPatch']((...args: unknown[]) => Promise.resolve())
551555
.bind({ middlewareStack: mockedMiddlewareStack });
552556

553-
sinon
554-
.stub(AWSXRayPropagator.prototype, 'inject')
555-
.callsFake((context: OtelContext, carrier: unknown, setter: TextMapSetter) => {
556-
(carrier as any)['isCarrierModified'] = 'carrierIsModified';
557-
});
557+
middlewareArgsHeader = {
558+
request: {
559+
headers: {},
560+
},
561+
};
558562

559563
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
560564
// @ts-ignore
561565
await send({}, null);
562566
});
563567

564568
it('Injecting with existing X-Ray header', async () => {
565-
const existingHeader = 'test-trace-header';
566-
const middlewareArgsWithHeader: any = {
567-
request: {
568-
headers: { [AWSXRAY_TRACE_ID_HEADER]: existingHeader },
569-
},
570-
};
571-
await mockedMiddlewareStackInternal[0][0]((arg: any) => Promise.resolve(), null)(middlewareArgsWithHeader);
569+
sinon
570+
.stub(AWSXRayPropagator.prototype, 'inject')
571+
.callsFake((context: OtelContext, carrier: unknown, setter: TextMapSetter) => {
572+
(carrier as any)['isCarrierModified'] = 'carrierIsModified';
573+
(carrier as any)[AWSXRAY_TRACE_ID_HEADER] = testXrayTraceHeader;
574+
});
575+
await mockedMiddlewareStackInternal[0][0]((arg: any) => Promise.resolve(), null)(middlewareArgsHeader);
572576

573577
sinon.restore();
574578

575-
expect(middlewareArgsWithHeader.request.headers['isCarrierModified']).toEqual('carrierIsModified');
576-
expect(middlewareArgsWithHeader.request.headers).not.toHaveProperty(AWSXRAY_TRACE_ID_HEADER);
577-
expect(middlewareArgsWithHeader.request.headers).toHaveProperty('X-Amzn-Trace-Id');
578-
expect(middlewareArgsWithHeader.request.headers['X-Amzn-Trace-Id']).toEqual(existingHeader);
579+
expect(middlewareArgsHeader.request.headers['isCarrierModified']).toEqual('carrierIsModified');
580+
expect(middlewareArgsHeader.request.headers).not.toHaveProperty(AWSXRAY_TRACE_ID_HEADER);
581+
expect(middlewareArgsHeader.request.headers).toHaveProperty('X-Amzn-Trace-Id');
582+
expect(middlewareArgsHeader.request.headers['X-Amzn-Trace-Id']).toEqual(testXrayTraceHeader);
579583

580584
expect(mockedMiddlewareStackInternal[0][1].name).toEqual('_adotInjectXrayContextMiddleware');
581585
});
582586

583587
it('Injecting without existing X-Ray header', async () => {
584-
const middlewareArgsNoHeader: any = {
585-
request: {
586-
headers: {},
587-
},
588-
};
588+
const invalidContext = trace.setSpanContext(ROOT_CONTEXT, {
589+
traceId: 'invalid-trace-id',
590+
spanId: 'invalid-span',
591+
traceFlags: 0,
592+
isRemote: false,
593+
});
589594

590-
await mockedMiddlewareStackInternal[0][0]((arg: any) => Promise.resolve(), null)(middlewareArgsNoHeader);
595+
const propagator = new AWSXRayPropagator();
591596

597+
propagator.inject(invalidContext, middlewareArgsHeader.request.headers, defaultTextMapSetter);
592598
sinon.restore();
593599

594-
expect(middlewareArgsNoHeader.request.headers['isCarrierModified']).toEqual('carrierIsModified');
595-
expect(middlewareArgsNoHeader.request.headers).not.toHaveProperty('X-Amzn-Trace-Id');
600+
expect(middlewareArgsHeader.request.headers).not.toHaveProperty(AWSXRAY_TRACE_ID_HEADER);
601+
expect(middlewareArgsHeader.request.headers).not.toHaveProperty('X-Amzn-Trace-Id');
596602

597603
expect(mockedMiddlewareStackInternal[0][1].name).toEqual('_adotInjectXrayContextMiddleware');
598604
});

0 commit comments

Comments
 (0)