diff --git a/src/node/test/call_test.js b/src/node/test/call_test.js index b7f4f5651053ad4d730fbecc9fdce12101a27c4c..f1f86b35db39a4efc201e415dc26e73326917558 100644 --- a/src/node/test/call_test.js +++ b/src/node/test/call_test.js @@ -107,6 +107,12 @@ describe('call', function() { new grpc.Call(channel, 'method', 'now'); }, TypeError); }); + it('should succeed without the new keyword', function() { + assert.doesNotThrow(function() { + var call = grpc.Call(channel, 'method', new Date()); + assert(call instanceof grpc.Call); + }); + }); }); describe('deadline', function() { it('should time out immediately with negative deadline', function(done) { diff --git a/src/node/test/channel_test.js b/src/node/test/channel_test.js index 5bcf63ee50bc7a4b62b645770b99e26e5196f480..7163a5fb5ee2467ae025a43f6da5623c718d22ff 100644 --- a/src/node/test/channel_test.js +++ b/src/node/test/channel_test.js @@ -104,6 +104,12 @@ describe('channel', function() { new grpc.Channel('hostname', insecureCreds, {'key' : new Date()}); }); }); + it('should succeed without the new keyword', function() { + assert.doesNotThrow(function() { + var channel = grpc.Channel('hostname', insecureCreds); + assert(channel instanceof grpc.Channel); + }); + }); }); describe('close', function() { var channel; diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js index 71801c38dd17871d15b567f0ccd0240b4ffd26e9..8aa76fd1eff9cb2a2a2aca5636de3fdc46736bf7 100644 --- a/src/node/test/surface_test.js +++ b/src/node/test/surface_test.js @@ -365,6 +365,18 @@ describe('Echo metadata', function() { done(); }); }); + it('properly handles duplicate values', function(done) { + var dup_metadata = metadata.clone(); + dup_metadata.add('key', 'value2'); + var call = client.unary({}, function(err, data) {assert.ifError(err); }, + dup_metadata); + call.on('metadata', function(resp_metadata) { + // Two arrays are equal iff their symmetric difference is empty + assert.deepEqual(_.xor(dup_metadata.get('key'), resp_metadata.get('key')), + []); + done(); + }); + }); }); describe('Other conditions', function() { var test_service;