77
88import { assert } from "chai" ;
99
10+ import { GRAPH_BASE_URL } from "../../src/Constants" ;
1011import { Context } from "../../src/IContext" ;
1112import { MiddlewareControl } from "../../src/middleware/MiddlewareControl" ;
1213import { FeatureUsageFlag , TelemetryHandlerOptions } from "../../src/middleware/options/TelemetryHandlerOptions" ;
@@ -26,79 +27,80 @@ describe("TelemetryHandler.ts", () => {
2627 statusText : "OK" ,
2728 } ) ;
2829 it ( "Should not disturb client-request-id in the header" , async ( ) => {
29- try {
30- const uuid = "dummy_uuid" ;
31- const context : Context = {
32- request : "url" ,
33- options : {
34- headers : {
35- "client-request-id" : uuid ,
36- } ,
30+ const uuid = "dummy_uuid" ;
31+ const context : Context = {
32+ request : GRAPH_BASE_URL ,
33+ options : {
34+ headers : {
35+ "client-request-id" : uuid ,
3736 } ,
38- } ;
39- dummyHTTPHandler . setResponses ( [ okayResponse ] ) ;
40- await telemetryHandler . execute ( context ) ;
41- assert . equal ( context . options . headers [ "client-request-id" ] , uuid ) ;
42- } catch ( error ) {
43- throw error ;
44- }
37+ } ,
38+ } ;
39+ dummyHTTPHandler . setResponses ( [ okayResponse ] ) ;
40+ await telemetryHandler . execute ( context ) ;
41+ assert . equal ( context . options . headers [ "client-request-id" ] , uuid ) ;
4542 } ) ;
4643
4744 it ( "Should create client-request-id if one is not present in the request header" , async ( ) => {
48- try {
49- const context : Context = {
50- request : "url" ,
51- options : {
52- headers : {
53- method : "GET" ,
54- } ,
45+ const context : Context = {
46+ request : "https://GRAPH.microsoft.com:443/" ,
47+ options : {
48+ headers : {
49+ method : "GET" ,
5550 } ,
56- } ;
57- dummyHTTPHandler . setResponses ( [ okayResponse ] ) ;
58- await telemetryHandler . execute ( context ) ;
59- assert . isDefined ( context . options . headers [ "client-request-id" ] ) ;
60- } catch ( error ) {
61- throw error ;
62- }
51+ } ,
52+ } ;
53+ dummyHTTPHandler . setResponses ( [ okayResponse ] ) ;
54+ await telemetryHandler . execute ( context ) ;
55+ assert . isDefined ( context . options . headers [ "client-request-id" ] ) ;
6356 } ) ;
6457
6558 it ( "Should set sdk version header without feature flag usage if telemetry options is not present" , async ( ) => {
66- try {
67- const context : Context = {
68- request : "url" ,
69- options : {
70- headers : {
71- method : "GET" ,
72- } ,
59+ const context : Context = {
60+ request : GRAPH_BASE_URL ,
61+ options : {
62+ headers : {
63+ method : "GET" ,
7364 } ,
74- } ;
75- dummyHTTPHandler . setResponses ( [ okayResponse ] ) ;
76- await telemetryHandler . execute ( context ) ;
77- assert . equal ( context . options . headers [ "SdkVersion" ] , `graph-js/${ PACKAGE_VERSION } ` ) ;
78- } catch ( error ) {
79- throw error ;
80- }
65+ } ,
66+ } ;
67+ dummyHTTPHandler . setResponses ( [ okayResponse ] ) ;
68+ await telemetryHandler . execute ( context ) ;
69+ assert . equal ( context . options . headers [ "SdkVersion" ] , `graph-js/${ PACKAGE_VERSION } ` ) ;
8170 } ) ;
8271
8372 it ( "Should set sdk version header with feature flag" , async ( ) => {
84- try {
85- const telemetryOptions = new TelemetryHandlerOptions ( ) ;
86- telemetryOptions [ "setFeatureUsage" ] ( FeatureUsageFlag . AUTHENTICATION_HANDLER_ENABLED ) ;
87- const context : Context = {
88- request : "url" ,
89- options : {
90- headers : {
91- method : "GET" ,
92- } ,
73+ const telemetryOptions = new TelemetryHandlerOptions ( ) ;
74+ telemetryOptions [ "setFeatureUsage" ] ( FeatureUsageFlag . AUTHENTICATION_HANDLER_ENABLED ) ;
75+ const context : Context = {
76+ request : GRAPH_BASE_URL ,
77+ options : {
78+ headers : {
79+ method : "GET" ,
9380 } ,
94- middlewareControl : new MiddlewareControl ( [ telemetryOptions ] ) ,
95- } ;
96- dummyHTTPHandler . setResponses ( [ okayResponse ] ) ;
97- await telemetryHandler . execute ( context ) ;
98- assert . equal ( context . options . headers [ "SdkVersion" ] , `graph-js/${ PACKAGE_VERSION } (featureUsage=${ FeatureUsageFlag . AUTHENTICATION_HANDLER_ENABLED . toString ( 16 ) } )` ) ;
99- } catch ( error ) {
100- throw error ;
101- }
81+ } ,
82+ middlewareControl : new MiddlewareControl ( [ telemetryOptions ] ) ,
83+ } ;
84+ dummyHTTPHandler . setResponses ( [ okayResponse ] ) ;
85+ await telemetryHandler . execute ( context ) ;
86+ assert . equal ( context . options . headers [ "SdkVersion" ] , `graph-js/${ PACKAGE_VERSION } (featureUsage=${ FeatureUsageFlag . AUTHENTICATION_HANDLER_ENABLED . toString ( 16 ) } )` ) ;
87+ } ) ;
88+
89+ it ( "Should not set telemetry for non-graph url" , async ( ) => {
90+ const context : Context = {
91+ request : "test url" ,
92+ options : {
93+ headers : {
94+ method : "GET" ,
95+ } ,
96+ } ,
97+ middlewareControl : new MiddlewareControl ( ) ,
98+ } ;
99+ dummyHTTPHandler . setResponses ( [ okayResponse ] ) ;
100+ await telemetryHandler . execute ( context ) ;
101+ assert . equal ( context . options . headers [ "client-request-id" ] , undefined ) ;
102+ assert . equal ( context . options . headers [ "SdkVersion" ] , undefined ) ;
103+ assert . equal ( context . options . headers [ "setFeatureUsage" ] , undefined ) ;
102104 } ) ;
103105 } ) ;
104106 /* tslint:enable: no-string-literal */
0 commit comments