UNPKG

remjson

Version:

JSON-RPC 1.0/2.0 compliant server and client

82 lines (62 loc) 2.05 kB
var should = require('should'); var fs = require('fs'); var remjson = require(__dirname + '/..'); var support = require('./support'); var common = support.common; var JSONStream = require('JSONStream'); var tls = require('tls'); var serverOptions = { ca: [fs.readFileSync('./test/fixtures/keys/ca1-cert.pem')], key: fs.readFileSync('./test/fixtures/keys/agent1-key.pem'), requestCert: true, cert: fs.readFileSync('./test/fixtures/keys/agent1-cert.pem') }; describe('RemJson.Tls', function () { describe('server', function () { var server = null; after(function () { server.close(); }); it('should listen to a local port', function (done) { server = remjson.server(support.methods, support.options).tls(serverOptions); server.listen(3000, 'localhost', done); }); it('should be an instance of tls.Server', function () { server.should.be.instanceof(tls.Server); }); }); describe('client', function () { var server = remjson.server(support.server.methods, support.server.options); var server_tls = server.tls(serverOptions); var client = remjson.client.tls({ reviver: support.server.options.reviver, replacer: support.server.options.replacer, host: 'localhost', port: 3000, ca: serverOptions.ca }); before(function (done) { server_tls.listen(3000, 'localhost', done); }); after(function () { server_tls.close(); }); describe('common tests', common(client)); it('should send a parse error for invalid JSON data', function (done) { var socket = tls.connect(3000, 'localhost', serverOptions, function () { var response = JSONStream.parse(); response.on('data', function (data) { data.should.containDeep({ id: null, error: {code: -32700} // Parse Error }); socket.end(); done(); }); socket.pipe(response); // obviously invalid socket.write('abc'); }); }); }); });