11var util = require ( 'util' )
22var url = require ( 'url' )
3+ var https = require ( 'https' )
34
45var CollectorApi = require ( './' )
56
@@ -9,54 +10,81 @@ var libPackage = require('../../../package')
910var assign = require ( 'lodash.assign' )
1011
1112describe ( 'The Trace CollectorApi module' , function ( ) {
12- var defaultConfig = {
13- serviceName : 'testName' ,
14- apiKey : 'testApiKey' ,
15- collectorLanguage : 'nodejs' ,
16- collectorApiUrl : 'https://collector.api.mock' ,
17- collectorApiSampleEndpoint : '/service/sample' ,
18- collectorApiServiceEndpoint : '/service' ,
19- collectorApiApmMetricsEndpoint : '/service/%s/apm-metrics' ,
20- collectorApiRpmMetricsEndpoint : '/service/%s/rpm-metrics' ,
21- collectorApiEdgeMetricsEndpoint : '/service/%s/edge-metrics' ,
22- collectorApiIncomingEdgeMetricsEndpoint : '/service/%s/edge-incoming' ,
23- collectorApiExternalEdgeMetricsEndpoint : '/service/%s/edge-external' ,
24- collectorApiHealthcheckEndpoint : '/service/%s/healthcheck' ,
25- collectorApiProfilerMemoryHeapdumpEndpoint : '/service/%s/memory-heapdump' ,
26- collectorApiProfilerCpuProfileEndpoint : '/service/%s/cpu-profile' ,
27- collectorApiControlEndpoint : '/service/%s/control' ,
28- collectorApiCustomMetrics : '/service/%s/custom-metrics' ,
29- system : {
30- hostname : 'test.org' ,
31- processVersion : '4.3.1' ,
32- processName : 'node' ,
33- processId : 7777 ,
34- osArch : 'x86' ,
35- osPlatform : 'darwin' ,
36- osRelease : '11' ,
37- cpus : [
38- {
39- model : 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz' ,
40- speed : 2700
41- } ,
42- {
43- model : 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz' ,
44- speed : 2700
45- } ,
46- {
47- model : 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz' ,
48- speed : 2700
49- } ,
50- { model : 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz' ,
51- speed : 2700
52- }
53- ]
13+ var defaultConfig
14+ beforeEach ( function ( ) {
15+ defaultConfig = {
16+ serviceName : 'testName' ,
17+ apiKey : 'testApiKey' ,
18+ collectorLanguage : 'nodejs' ,
19+ collectorApiUrl : 'https://collector.api.mock' ,
20+ collectorApiSampleEndpoint : '/service/sample' ,
21+ collectorApiServiceEndpoint : '/service' ,
22+ collectorApiApmMetricsEndpoint : '/service/%s/apm-metrics' ,
23+ collectorApiRpmMetricsEndpoint : '/service/%s/rpm-metrics' ,
24+ collectorApiEdgeMetricsEndpoint : '/service/%s/edge-metrics' ,
25+ collectorApiIncomingEdgeMetricsEndpoint : '/service/%s/edge-incoming' ,
26+ collectorApiExternalEdgeMetricsEndpoint : '/service/%s/edge-external' ,
27+ collectorApiHealthcheckEndpoint : '/service/%s/healthcheck' ,
28+ collectorApiProfilerMemoryHeapdumpEndpoint : '/service/%s/memory-heapdump' ,
29+ collectorApiProfilerCpuProfileEndpoint : '/service/%s/cpu-profile' ,
30+ collectorApiControlEndpoint : '/service/%s/control' ,
31+ collectorApiCustomMetrics : '/service/%s/custom-metrics' ,
32+ system : {
33+ hostname : 'test.org' ,
34+ processVersion : '4.3.1' ,
35+ processName : 'node' ,
36+ processId : 7777 ,
37+ osArch : 'x86' ,
38+ osPlatform : 'darwin' ,
39+ osRelease : '11' ,
40+ cpus : [
41+ {
42+ model : 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz' ,
43+ speed : 2700
44+ } ,
45+ {
46+ model : 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz' ,
47+ speed : 2700
48+ } ,
49+ {
50+ model : 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz' ,
51+ speed : 2700
52+ } ,
53+ { model : 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz' ,
54+ speed : 2700
55+ }
56+ ]
57+ }
5458 }
55- }
59+ } )
5660
5761 it ( 'can be instantiated w/ serviceName and apiKey' , function ( ) {
62+ var httpsRequestSpy = this . sandbox . spy ( https , 'request' )
63+ defaultConfig . proxy = 'http://127.0.0.1'
64+ var collectorApi = CollectorApi . create ( defaultConfig )
65+
66+ var serviceKey = 12
67+
68+ var data = {
69+ trace : 'very data' ,
70+ hostname : 'test.org' ,
71+ pid : 7777
72+ }
73+
74+ var path = util . format ( defaultConfig . collectorApiRpmMetricsEndpoint , serviceKey )
75+ var sendUrl = url . resolve ( defaultConfig . collectorApiUrl , path )
76+
77+ var collectorApi = CollectorApi . create ( defaultConfig )
78+ collectorApi . serviceKey = serviceKey
79+
80+ collectorApi . sendRpmMetrics ( data )
81+
82+ expect ( httpsRequestSpy . firstCall . args [ 0 ] . agent ) . to . eql ( collectorApi . proxyAgent )
83+ expect ( collectorApi . proxyAgent ) . to . be . ok
84+ } )
85+
86+ it ( 'can use a proxy' , function ( ) {
5887 var collectorApi = CollectorApi . create ( defaultConfig )
59- expect ( collectorApi ) . to . be . ok
6088 } )
6189
6290 it ( 'sends rpm metrics to the collector server' , function ( ) {
0 commit comments