Skip to content

Commit e377c40

Browse files
authored
update grpc tests to work with node 16 (#3141)
1 parent c8f45ab commit e377c40

File tree

5 files changed

+26
-13
lines changed

5 files changed

+26
-13
lines changed

.github/workflows/plugins.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,6 @@ jobs:
339339
- run: yarn test:plugins:upstream
340340
- uses: codecov/codecov-action@v2
341341

342-
# The grpc version ranges we support only support up to Node 14.
343342
grpc:
344343
runs-on: ubuntu-latest
345344
env:
@@ -350,6 +349,8 @@ jobs:
350349
- run: yarn install
351350
- uses: ./.github/actions/node/oldest
352351
- run: yarn test:plugins:ci
352+
- uses: ./.github/actions/node/latest
353+
- run: yarn test:plugins:ci
353354
- uses: codecov/codecov-action@v2
354355

355356
# The hapi version ranges we support only support up to Node 14.

packages/datadog-instrumentations/src/grpc/client.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ const types = require('./types')
44
const { addHook, channel, AsyncResource } = require('../helpers/instrument')
55
const shimmer = require('../../../datadog-shimmer')
66

7+
const nodeMajor = parseInt(process.versions.node.split('.')[0])
8+
79
const patched = new WeakSet()
810
const instances = new WeakMap()
911

@@ -232,13 +234,15 @@ function patch (grpc) {
232234
return grpc
233235
}
234236

235-
addHook({ name: 'grpc', versions: ['>=1.24.3'] }, patch)
237+
if (nodeMajor <= 14) {
238+
addHook({ name: 'grpc', versions: ['>=1.24.3'] }, patch)
236239

237-
addHook({ name: 'grpc', versions: ['>=1.24.3'], file: 'src/client.js' }, client => {
238-
shimmer.wrap(client, 'makeClientConstructor', createWrapMakeClientConstructor())
240+
addHook({ name: 'grpc', versions: ['>=1.24.3'], file: 'src/client.js' }, client => {
241+
shimmer.wrap(client, 'makeClientConstructor', createWrapMakeClientConstructor())
239242

240-
return client
241-
})
243+
return client
244+
})
245+
}
242246

243247
addHook({ name: '@grpc/grpc-js', versions: ['>=1.0.3'] }, patch)
244248

packages/datadog-instrumentations/src/grpc/server.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ const types = require('./types')
44
const { channel, addHook, AsyncResource } = require('../helpers/instrument')
55
const shimmer = require('../../../datadog-shimmer')
66

7+
const nodeMajor = parseInt(process.versions.node.split('.')[0])
8+
79
const startChannel = channel('apm:grpc:server:request:start')
810
const errorChannel = channel('apm:grpc:server:request:error')
911
const updateChannel = channel('apm:grpc:server:request:update')
@@ -139,11 +141,13 @@ function isEmitter (obj) {
139141
return typeof obj.emit === 'function' && typeof obj.once === 'function'
140142
}
141143

142-
addHook({ name: 'grpc', versions: ['>=1.24.3'], file: 'src/server.js' }, server => {
143-
shimmer.wrap(server.Server.prototype, 'register', wrapRegister)
144+
if (nodeMajor <= 14) {
145+
addHook({ name: 'grpc', versions: ['>=1.24.3'], file: 'src/server.js' }, server => {
146+
shimmer.wrap(server.Server.prototype, 'register', wrapRegister)
144147

145-
return server
146-
})
148+
return server
149+
})
150+
}
147151

148152
addHook({ name: '@grpc/grpc-js', versions: ['>=1.0.3'], file: 'build/src/server.js' }, server => {
149153
shimmer.wrap(server.Server.prototype, 'register', wrapRegister)

packages/datadog-plugin-grpc/test/client.spec.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ const getPort = require('get-port')
55
const Readable = require('stream').Readable
66
const getService = require('./service')
77
const loader = require('../../../versions/@grpc/proto-loader').get()
8-
const pkgs = ['grpc', '@grpc/grpc-js']
98
const { ERROR_MESSAGE, ERROR_TYPE, ERROR_STACK } = require('../../dd-trace/src/constants')
109

10+
const nodeMajor = parseInt(process.versions.node.split('.')[0])
11+
const pkgs = nodeMajor > 14 ? ['@grpc/grpc-js'] : ['grpc', '@grpc/grpc-js']
12+
1113
describe('Plugin', () => {
1214
let grpc
1315
let port
@@ -317,7 +319,7 @@ describe('Plugin', () => {
317319
'component': 'grpc'
318320
})
319321
expect(traces[0][0].meta).to.have.property(ERROR_STACK)
320-
expect(traces[0][0].meta[ERROR_MESSAGE]).to.match(/^13 INTERNAL:.+$/)
322+
expect(traces[0][0].meta[ERROR_MESSAGE]).to.match(/^13 INTERNAL:.+$/m)
321323
expect(traces[0][0].metrics).to.have.property('grpc.status.code', 13)
322324
})
323325
})

packages/datadog-plugin-grpc/test/server.spec.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
const agent = require('../../dd-trace/test/plugins/agent')
44
const getPort = require('get-port')
55
const Readable = require('stream').Readable
6-
const pkgs = ['grpc', '@grpc/grpc-js']
76
const { ERROR_MESSAGE, ERROR_TYPE, ERROR_STACK } = require('../../dd-trace/src/constants')
87

8+
const nodeMajor = parseInt(process.versions.node.split('.')[0])
9+
const pkgs = nodeMajor > 14 ? ['@grpc/grpc-js'] : ['grpc', '@grpc/grpc-js']
10+
911
describe('Plugin', () => {
1012
let grpc
1113
let port

0 commit comments

Comments
 (0)