grpc-node/test/channel_test.js

56 lines
1.6 KiB
JavaScript

var assert = require('assert');
var grpc = require('bindings')('grpc.node');
describe('channel', function() {
describe('constructor', function() {
it('should require a string for the first argument', function() {
assert.doesNotThrow(function() {
new grpc.Channel('hostname');
});
assert.throws(function() {
new grpc.Channel();
}, TypeError);
assert.throws(function() {
new grpc.Channel(5);
});
});
it('should accept an object for the second parameter', function() {
assert.doesNotThrow(function() {
new grpc.Channel('hostname', {});
});
assert.throws(function() {
new grpc.Channel('hostname', 5);
});
});
it('should only accept objects with string or int values', function() {
assert.doesNotThrow(function() {
new grpc.Channel('hostname', {'key' : 'value'});
});
assert.doesNotThrow(function() {
new grpc.Channel('hostname', {'key' : 5});
});
assert.throws(function() {
new grpc.Channel('hostname', {'key' : null});
});
assert.throws(function() {
new grpc.Channel('hostname', {'key' : new Date()});
});
});
});
describe('close', function() {
it('should succeed silently', function() {
var channel = new grpc.Channel('hostname', {});
assert.doesNotThrow(function() {
channel.close();
});
});
it('should be idempotent', function() {
var channel = new grpc.Channel('hostname', {});
assert.doesNotThrow(function() {
channel.close();
channel.close();
});
});
});
});