Skip to content

Commit 0586642

Browse files
committed
add unit tests
1 parent c3a439f commit 0586642

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

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

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -543,26 +543,40 @@ describe('InstrumentationPatchTest', () => {
543543
const send = extractAwsSdkInstrumentation(PATCHED_INSTRUMENTATIONS)
544544
['_getV3SmithyClientSendPatch']((...args: unknown[]) => Promise.resolve())
545545
.bind({ middlewareStack: mockedMiddlewareStack });
546+
546547
sinon
547548
.stub(AWSXRayPropagator.prototype, 'inject')
548-
.callsFake((context: OtelContext, carrier: unknown, setter: TextMapSetter) => {
549-
(carrier as any)['isCarrierModified'] = 'carrierIsModified';
549+
.callsFake((context: OtelContext, carrier: any, setter: TextMapSetter) => {
550+
carrier['isCarrierModified'] = 'carrierIsModified';
550551
});
551552

552553
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
553554
// @ts-ignore
554555
await send({}, null);
555556

556-
const middlewareArgs: any = {
557+
// Test case 1: With existing header
558+
const existingHeader = 'test-trace-header';
559+
const middlewareArgsWithHeader: any = {
560+
request: {
561+
headers: { [AWSXRAY_TRACE_ID_HEADER]: existingHeader },
562+
},
563+
};
564+
await mockedMiddlewareStackInternal[0][0]((arg: any) => Promise.resolve(), null)(middlewareArgsWithHeader);
565+
expect(middlewareArgsWithHeader.request.headers['isCarrierModified']).toEqual('carrierIsModified');
566+
expect(middlewareArgsWithHeader.request.headers['X-Amzn-Trace-Id']).toEqual(existingHeader);
567+
568+
// Test case 2: Without existing header
569+
const middlewareArgsNoHeader: any = {
557570
request: {
558571
headers: {},
559572
},
560573
};
561-
await mockedMiddlewareStackInternal[0][0]((arg: any) => Promise.resolve(), null)(middlewareArgs);
574+
await mockedMiddlewareStackInternal[0][0]((arg: any) => Promise.resolve(), null)(middlewareArgsNoHeader);
575+
expect(middlewareArgsNoHeader.request.headers['isCarrierModified']).toEqual('carrierIsModified');
576+
expect(middlewareArgsNoHeader.request.headers).not.toContain(AWSXRAY_TRACE_ID_HEADER);
562577

563-
sinon.restore();
564-
expect(middlewareArgs.request.headers['isCarrierModified']).toEqual('carrierIsModified');
565578
expect(mockedMiddlewareStackInternal[0][1].name).toEqual('_adotInjectXrayContextMiddleware');
579+
sinon.restore();
566580
});
567581

568582
it('injects trace context header into request via propagator', async () => {

0 commit comments

Comments
 (0)