| 
1 | 1 | 'use strict'  | 
2 |  | -// 'use strict'  | 
3 |  | -//  | 
4 |  | -// var express = require('express')  | 
5 |  | -// var bodyParser = require('body-parser')  | 
6 |  | -// var test = require('tape')  | 
7 |  | -// var spawnSync = require('spawn-sync')  | 
8 |  | -// var defaultsDeep = require('lodash').defaultsDeep  | 
9 |  | -// var path = require('path')  | 
10 |  | -// // var semver = require('semver')  | 
11 |  | -//  | 
12 |  | -// var TRACE_API_KEY = 'headers.payload.signature'  | 
13 |  | -// var TRACE_SERVICE_NAME = 'service-name'  | 
14 |  | -// var TEST_WEB_SERVER_PORT = process.env.TEST_WEBSERVER_PORT || 44332  | 
15 |  | -// var TEST_TIMEOUT = 10000  | 
16 |  | -//  | 
17 |  | -// var env = {  | 
18 |  | -//   TRACE_API_KEY: TRACE_API_KEY,  | 
19 |  | -//   TRACE_SERVICE_NAME: TRACE_SERVICE_NAME,  | 
20 |  | -//   TRACE_COLLECT_INTERVAL: 100,  | 
21 |  | -//   TRACE_UPDATE_INTERVAL: 100000,  | 
22 |  | -//   TRACE_COLLECTOR_API_URL: 'http://127.0.0.1:' + TEST_WEB_SERVER_PORT  | 
23 |  | -// }  | 
24 |  | -//  | 
25 |  | -// test('should report crash', {  | 
26 |  | -//   timeout: TEST_TIMEOUT,  | 
27 |  | -//   skip: true // !semver.satisfies(process.version, '>= 6')  | 
28 |  | -// }, function (t) {  | 
29 |  | -//   var app = express()  | 
30 |  | -//   app.use(bodyParser.json())  | 
31 |  | -//   app.post('/transaction-events', function (req, res) {  | 
32 |  | -//     var event = req.body.e.find(function (e) {  | 
33 |  | -//       return e.t === 'err' && e.d.t === 'system-error'  | 
34 |  | -//     })  | 
35 |  | -//     t.ok(event != null, 'Error event exists')  | 
36 |  | -//     t.end()  | 
37 |  | -//     process.exit(0)  | 
38 |  | -//   })  | 
39 |  | -//   app.listen(TEST_WEB_SERVER_PORT, function (err) {  | 
40 |  | -//     t.error(err, 'server starts listening at ' + TEST_WEB_SERVER_PORT)  | 
41 |  | -//  | 
42 |  | -//     spawnSync('node', [path.join(__dirname, 'testee.js')], {  | 
43 |  | -//  | 
44 |  | -//       env: defaultsDeep({}, env, process.env)  | 
45 |  | -//     })  | 
46 |  | -//   })  | 
47 |  | -// })  | 
 | 2 | + | 
 | 3 | +var express = require('express')  | 
 | 4 | +var bodyParser = require('body-parser')  | 
 | 5 | +var test = require('tape')  | 
 | 6 | +var spawnSync = require('spawn-sync')  | 
 | 7 | +var defaultsDeep = require('lodash').defaultsDeep  | 
 | 8 | +var path = require('path')  | 
 | 9 | +var find = require('lodash.find')  | 
 | 10 | +// var semver = require('semver')  | 
 | 11 | + | 
 | 12 | +var TRACE_API_KEY = 'headers.payload.signature'  | 
 | 13 | +var TRACE_SERVICE_NAME = 'service-name'  | 
 | 14 | +var TEST_WEB_SERVER_PORT = process.env.TEST_WEBSERVER_PORT || 44333 + Math.trunc(Math.random() * 100)  | 
 | 15 | +var TEST_TIMEOUT = 10000  | 
 | 16 | + | 
 | 17 | +var env = {  | 
 | 18 | +  TRACE_API_KEY: TRACE_API_KEY,  | 
 | 19 | +  TRACE_SERVICE_NAME: TRACE_SERVICE_NAME,  | 
 | 20 | +  TRACE_COLLECT_INTERVAL: 100,  | 
 | 21 | +  TRACE_UPDATE_INTERVAL: 100000,  | 
 | 22 | +  TRACE_COLLECTOR_API_URL: 'http://127.0.0.1:' + TEST_WEB_SERVER_PORT  | 
 | 23 | +}  | 
 | 24 | + | 
 | 25 | +test('should report crash', {  | 
 | 26 | +  timeout: TEST_TIMEOUT  | 
 | 27 | +}, function (t) {  | 
 | 28 | +  var server  | 
 | 29 | +  var app = express()  | 
 | 30 | +  app.use(bodyParser.json())  | 
 | 31 | +  app.post('/transaction-events', function (req, res) {  | 
 | 32 | +    try {  | 
 | 33 | +      t.ok(req.body.e, 'Events are reported')  | 
 | 34 | +      console.log(req.body.e)  | 
 | 35 | +      var event = find(req.body.e, function (e) {  | 
 | 36 | +        return e.t === 'err' && e.d.t === 'system-error'  | 
 | 37 | +      })  | 
 | 38 | +      t.ok(event != null, 'Error event exists')  | 
 | 39 | +      t.end()  | 
 | 40 | +    } finally {  | 
 | 41 | +      server.close()  | 
 | 42 | +    }  | 
 | 43 | +  })  | 
 | 44 | +  server = app.listen(TEST_WEB_SERVER_PORT, function (err) {  | 
 | 45 | +    t.error(err, 'server starts listening at ' + TEST_WEB_SERVER_PORT)  | 
 | 46 | + | 
 | 47 | +    spawnSync('node', [path.join(__dirname, 'testee.js')], {  | 
 | 48 | +      stdio: [0, 1, 2],  | 
 | 49 | +      env: defaultsDeep({}, env, process.env)  | 
 | 50 | +    })  | 
 | 51 | +  })  | 
 | 52 | +})  | 
0 commit comments