@@ -9,6 +9,101 @@ const isWindows = os.platform() === 'win32'
9
9
10
10
const suiteDescribe = isWindows ? describe . skip : describe
11
11
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
+
12
107
suiteDescribe ( 'runtimeMetrics' , ( ) => {
13
108
let runtimeMetrics
14
109
let config
@@ -31,8 +126,8 @@ suiteDescribe('runtimeMetrics', () => {
31
126
flush : sinon . spy ( )
32
127
}
33
128
34
- runtimeMetrics = proxyquire ( '../src/runtime_metrics' , {
35
- './dogstatsd' : {
129
+ runtimeMetrics = proxyquire ( '../src/runtime_metrics/runtime_metrics ' , {
130
+ '.. /dogstatsd' : {
36
131
DogStatsDClient : Client
37
132
}
38
133
} )
@@ -301,8 +396,8 @@ suiteDescribe('runtimeMetrics', () => {
301
396
302
397
describe ( 'without native runtimeMetrics' , ( ) => {
303
398
beforeEach ( ( ) => {
304
- runtimeMetrics = proxyquire ( '../src/runtime_metrics' , {
305
- './dogstatsd' : Client ,
399
+ runtimeMetrics = proxyquire ( '../src/runtime_metrics/runtime_metrics ' , {
400
+ '.. /dogstatsd' : Client ,
306
401
'node-gyp-build' : sinon . stub ( ) . returns ( null )
307
402
} )
308
403
} )
0 commit comments