1+ /**
2+ * Pinpoint Node.js Agent
3+ * Copyright 2020-present NAVER Corp.
4+ * Apache License v2.0
5+ */
6+
7+ const test = require ( 'tape' )
8+ const { ExceptionBuilder } = require ( '../../../lib/context/trace/exception-builder' )
9+
10+ const error = new Error ( 'error case' )
11+ error . stack = `Error: error case
12+ at /Users/workspace/pinpoint/pinpoint-node-agent/test/instrumentation/module/express.test.js:110:11
13+ at Layer.handle [as handle_request] (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/layer.js:95:5)
14+ at next (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/route.js:149:13)
15+ at Route.dispatch (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/route.js:119:3)
16+ at InterceptorRunner.run (/Users/workspace/pinpoint/pinpoint-node-agent/lib/instrumentation/interceptor-runner.js:59:38)
17+ at wrapped (/Users/workspace/pinpoint/pinpoint-node-agent/lib/instrumentation/module/express/express-layer-interceptor.js:41:87)
18+ at Layer.handle [as handle_request] (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/layer.js:95:5)
19+ at /Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/index.js:284:15
20+ at Function.process_params (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/index.js:346:12)
21+ at next (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/index.js:280:10)`
22+
23+ test ( 'ExceptionBuilder Test - snapshot-like multiline' , ( t ) => {
24+ t . plan ( 13 )
25+ const actual = new ExceptionBuilder ( error ) . build ( )
26+ t . equal ( actual . errorClassName , 'Error' , `Error class name is ${ actual . errorClassName } ` )
27+ t . equal ( actual . errorMessage , 'error case' , `Error message is ${ actual . errorMessage } ` )
28+ t . equal ( actual . frameStack . length , 10 , `Frame stack length is ${ actual . frameStack . length } ` )
29+
30+ t . deepEqual ( actual . frameStack [ 0 ] , {
31+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/test/instrumentation/module/express.test.js' ,
32+ fileName : 'express.test.js' ,
33+ lineNumber : 110 ,
34+ } , 'at /Users/workspace/pinpoint/pinpoint-node-agent/test/instrumentation/module/express.test.js:110:11' )
35+ t . deepEqual ( actual . frameStack [ 1 ] , {
36+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/layer.js' ,
37+ fileName : 'layer.js' ,
38+ lineNumber : 95 ,
39+ type : 'Layer' ,
40+ functionName : 'handle' ,
41+ methodName : 'handle_request'
42+ } , 'at Layer.handle [as handle_request] (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/layer.js:95:5)' )
43+ t . deepEqual ( actual . frameStack [ 2 ] , {
44+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/route.js' ,
45+ fileName : 'route.js' ,
46+ lineNumber : 149 ,
47+ functionName : 'next'
48+ } , 'at next (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/route.js:149:13)' )
49+ t . deepEqual ( actual . frameStack [ 3 ] , {
50+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/route.js' ,
51+ fileName : 'route.js' ,
52+ lineNumber : 119 ,
53+ type : 'Route' ,
54+ functionName : 'dispatch'
55+ } , 'at Route.dispatch (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/route.js:119:3)' )
56+ t . deepEqual ( actual . frameStack [ 4 ] , {
57+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/lib/instrumentation/interceptor-runner.js' ,
58+ fileName : 'interceptor-runner.js' ,
59+ lineNumber : 59 ,
60+ type : 'InterceptorRunner' ,
61+ functionName : 'run'
62+ } , 'at InterceptorRunner.run (/Users/workspace/pinpoint/pinpoint-node-agent/lib/instrumentation/interceptor-runner.js:59:38)' )
63+ t . deepEqual ( actual . frameStack [ 5 ] , {
64+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/lib/instrumentation/module/express/express-layer-interceptor.js' ,
65+ fileName : 'express-layer-interceptor.js' ,
66+ lineNumber : 41 ,
67+ functionName : 'wrapped'
68+ } , 'at wrapped (/Users/workspace/pinpoint/pinpoint-node-agent/lib/instrumentation/module/express/express-layer-interceptor.js:41:87)' )
69+ t . deepEqual ( actual . frameStack [ 6 ] , {
70+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/layer.js' ,
71+ fileName : 'layer.js' ,
72+ lineNumber : 95 ,
73+ type : 'Layer' ,
74+ functionName : 'handle' ,
75+ methodName : 'handle_request'
76+ } , 'at Layer.handle [as handle_request] (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/layer.js:95:5)' )
77+ t . deepEqual ( actual . frameStack [ 7 ] , {
78+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/index.js' ,
79+ fileName : 'index.js' ,
80+ lineNumber : 284 ,
81+ } , 'at /Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/index.js:284:15' )
82+ t . deepEqual ( actual . frameStack [ 8 ] , {
83+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/index.js' ,
84+ fileName : 'index.js' ,
85+ lineNumber : 346 ,
86+ functionName : 'process_params' ,
87+ type : 'Function' ,
88+ } , 'at Function.process_params (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/index.js:346:12)' )
89+ t . deepEqual ( actual . frameStack [ 9 ] , {
90+ location : '/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/index.js' ,
91+ fileName : 'index.js' ,
92+ lineNumber : 280 ,
93+ functionName : 'next'
94+ } , 'at next (/Users/workspace/pinpoint/pinpoint-node-agent/node_modules/express/lib/router/index.js:280:10)' )
95+
96+ } )
0 commit comments