File tree Expand file tree Collapse file tree 2 files changed +24
-3
lines changed Expand file tree Collapse file tree 2 files changed +24
-3
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ import {
1818 setLogger ,
1919 Logger ,
2020} from 'aws-xray-sdk-core' ;
21+ import { addUserAgentMiddleware } from '@aws-lambda-powertools/commons' ;
2122
2223class ProviderService implements ProviderServiceInterface {
2324 public captureAWS < T > ( awssdk : T ) : T {
@@ -29,6 +30,8 @@ class ProviderService implements ProviderServiceInterface {
2930 }
3031
3132 public captureAWSv3Client < T > ( service : T ) : T {
33+ addUserAgentMiddleware ( service , 'tracer' ) ;
34+
3235 // Type must be aliased as any because of this https://github.com/aws/aws-xray-sdk-node/issues/439#issuecomment-859715660
3336 // eslint-disable-next-line @typescript-eslint/no-explicit-any
3437 return captureAWSv3Client ( service as any ) ;
Original file line number Diff line number Diff line change 66
77import { ProviderService } from '../../src/provider' ;
88import {
9+ captureAsyncFunc ,
910 captureAWS ,
1011 captureAWSClient ,
1112 captureAWSv3Client ,
12- captureAsyncFunc ,
13- captureHTTPsGlobal ,
1413 captureFunc ,
14+ captureHTTPsGlobal ,
1515 getNamespace ,
1616 getSegment ,
17+ Segment ,
1718 setContextMissingStrategy ,
1819 setDaemonAddress ,
1920 setLogger ,
2021 setSegment ,
2122 Subsegment ,
22- Segment ,
2323} from 'aws-xray-sdk-core' ;
2424import http from 'http' ;
2525import https from 'https' ;
26+ import { DynamoDBClient } from '@aws-sdk/client-dynamodb' ;
27+ import * as UserAgentMiddleware from '@aws-lambda-powertools/commons/lib/userAgentMiddleware' ;
2628
2729jest . mock ( 'aws-xray-sdk-core' , ( ) => ( {
2830 ...jest . requireActual ( 'aws-xray-sdk-core' ) ,
@@ -85,6 +87,22 @@ describe('Class: ProviderService', () => {
8587 expect ( captureAWSv3Client ) . toHaveBeenCalledTimes ( 1 ) ;
8688 expect ( captureAWSv3Client ) . toHaveBeenCalledWith ( { } ) ;
8789 } ) ;
90+
91+ test ( 'when called, it adds the correct user agent middleware' , ( ) => {
92+ // Prepare
93+ const provider : ProviderService = new ProviderService ( ) ;
94+
95+ // spy on addUserAgentMiddleware
96+ const spy = jest . spyOn ( UserAgentMiddleware , 'addUserAgentMiddleware' ) ;
97+
98+ // Act
99+ const dynamoDBClient = new DynamoDBClient ( { } ) ;
100+ provider . captureAWSv3Client ( dynamoDBClient ) ;
101+
102+ // Assess
103+ expect ( spy ) . toHaveBeenCalledTimes ( 1 ) ;
104+ expect ( spy ) . toHaveBeenCalledWith ( dynamoDBClient , 'tracer' ) ;
105+ } ) ;
88106 } ) ;
89107
90108 describe ( 'Method: captureAsyncFunc' , ( ) => {
You can’t perform that action at this time.
0 commit comments