7
7
8
8
import { assert } from "chai" ;
9
9
10
+ import { GRAPH_BASE_URL } from "../../src/Constants" ;
10
11
import { Context } from "../../src/IContext" ;
11
12
import { MiddlewareControl } from "../../src/middleware/MiddlewareControl" ;
12
13
import { FeatureUsageFlag , TelemetryHandlerOptions } from "../../src/middleware/options/TelemetryHandlerOptions" ;
@@ -26,79 +27,80 @@ describe("TelemetryHandler.ts", () => {
26
27
statusText : "OK" ,
27
28
} ) ;
28
29
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 ,
37
36
} ,
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 ) ;
45
42
} ) ;
46
43
47
44
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" ,
55
50
} ,
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" ] ) ;
63
56
} ) ;
64
57
65
58
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" ,
73
64
} ,
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 } ` ) ;
81
70
} ) ;
82
71
83
72
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" ,
93
80
} ,
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 ) ;
102
104
} ) ;
103
105
} ) ;
104
106
/* tslint:enable: no-string-literal */
0 commit comments