@@ -9,6 +9,101 @@ const isWindows = os.platform() === 'win32'
99
1010const suiteDescribe = isWindows ? describe . skip : describe
1111
12+ suiteDescribe ( 'runtimeMetrics (proxy)' , ( ) => {
13+ let runtimeMetrics
14+ let proxy
15+
16+ beforeEach ( ( ) => {
17+ runtimeMetrics = sinon . spy ( {
18+ start ( ) { } ,
19+ stop ( ) { } ,
20+ track ( ) { } ,
21+ boolean ( ) { } ,
22+ histogram ( ) { } ,
23+ count ( ) { } ,
24+ gauge ( ) { } ,
25+ increment ( ) { } ,
26+ decrement ( ) { }
27+ } )
28+
29+ proxy = proxyquire ( '../src/runtime_metrics' , {
30+ './runtime_metrics' : runtimeMetrics
31+ } )
32+ } )
33+
34+ it ( 'should be noop when disabled' , ( ) => {
35+ proxy . start ( )
36+ proxy . track ( )
37+ proxy . boolean ( )
38+ proxy . histogram ( )
39+ proxy . count ( )
40+ proxy . gauge ( )
41+ proxy . increment ( )
42+ proxy . decrement ( )
43+ proxy . stop ( )
44+
45+ expect ( runtimeMetrics . start ) . to . not . have . been . called
46+ expect ( runtimeMetrics . track ) . to . not . have . been . called
47+ expect ( runtimeMetrics . boolean ) . to . not . have . been . called
48+ expect ( runtimeMetrics . histogram ) . to . not . have . been . called
49+ expect ( runtimeMetrics . count ) . to . not . have . been . called
50+ expect ( runtimeMetrics . gauge ) . to . not . have . been . called
51+ expect ( runtimeMetrics . increment ) . to . not . have . been . called
52+ expect ( runtimeMetrics . decrement ) . to . not . have . been . called
53+ expect ( runtimeMetrics . stop ) . to . not . have . been . called
54+ } )
55+
56+ it ( 'should proxy when enabled' , ( ) => {
57+ const config = { runtimeMetrics : true }
58+
59+ proxy . start ( config )
60+ proxy . track ( )
61+ proxy . boolean ( )
62+ proxy . histogram ( )
63+ proxy . count ( )
64+ proxy . gauge ( )
65+ proxy . increment ( )
66+ proxy . decrement ( )
67+ proxy . stop ( )
68+
69+ expect ( runtimeMetrics . start ) . to . have . been . calledWith ( config )
70+ expect ( runtimeMetrics . track ) . to . have . been . called
71+ expect ( runtimeMetrics . boolean ) . to . have . been . called
72+ expect ( runtimeMetrics . histogram ) . to . have . been . called
73+ expect ( runtimeMetrics . count ) . to . have . been . called
74+ expect ( runtimeMetrics . gauge ) . to . have . been . called
75+ expect ( runtimeMetrics . increment ) . to . have . been . called
76+ expect ( runtimeMetrics . decrement ) . to . have . been . called
77+ expect ( runtimeMetrics . stop ) . to . have . been . called
78+ } )
79+
80+ it ( 'should be noop when disabled after being enabled' , ( ) => {
81+ const config = { runtimeMetrics : true }
82+
83+ proxy . start ( config )
84+ proxy . stop ( )
85+ proxy . start ( )
86+ proxy . track ( )
87+ proxy . boolean ( )
88+ proxy . histogram ( )
89+ proxy . count ( )
90+ proxy . gauge ( )
91+ proxy . increment ( )
92+ proxy . decrement ( )
93+ proxy . stop ( )
94+
95+ expect ( runtimeMetrics . start ) . to . have . been . calledOnce
96+ expect ( runtimeMetrics . track ) . to . not . have . been . called
97+ expect ( runtimeMetrics . boolean ) . to . not . have . been . called
98+ expect ( runtimeMetrics . histogram ) . to . not . have . been . called
99+ expect ( runtimeMetrics . count ) . to . not . have . been . called
100+ expect ( runtimeMetrics . gauge ) . to . not . have . been . called
101+ expect ( runtimeMetrics . increment ) . to . not . have . been . called
102+ expect ( runtimeMetrics . decrement ) . to . not . have . been . called
103+ expect ( runtimeMetrics . stop ) . to . have . been . calledOnce
104+ } )
105+ } )
106+
12107suiteDescribe ( 'runtimeMetrics' , ( ) => {
13108 let runtimeMetrics
14109 let config
@@ -31,8 +126,8 @@ suiteDescribe('runtimeMetrics', () => {
31126 flush : sinon . spy ( )
32127 }
33128
34- runtimeMetrics = proxyquire ( '../src/runtime_metrics' , {
35- './dogstatsd' : {
129+ runtimeMetrics = proxyquire ( '../src/runtime_metrics/runtime_metrics ' , {
130+ '.. /dogstatsd' : {
36131 DogStatsDClient : Client
37132 }
38133 } )
@@ -301,8 +396,8 @@ suiteDescribe('runtimeMetrics', () => {
301396
302397 describe ( 'without native runtimeMetrics' , ( ) => {
303398 beforeEach ( ( ) => {
304- runtimeMetrics = proxyquire ( '../src/runtime_metrics' , {
305- './dogstatsd' : Client ,
399+ runtimeMetrics = proxyquire ( '../src/runtime_metrics/runtime_metrics ' , {
400+ '.. /dogstatsd' : Client ,
306401 'node-gyp-build' : sinon . stub ( ) . returns ( null )
307402 } )
308403 } )
0 commit comments