From 533b2102d6160e167c04effba40bc44e2d08049c Mon Sep 17 00:00:00 2001 From: Jared Hanson Date: Wed, 18 Sep 2013 15:19:20 -0700 Subject: [PATCH] Clean up test cases for serialization. --- lib/server.js | 16 +++--- test/server-test.js | 24 ++++----- test/server.serialization.test.js | 88 ++++++++++++++++++++++++------- 3 files changed, 88 insertions(+), 40 deletions(-) diff --git a/lib/server.js b/lib/server.js index 40cacae0..93a1c668 100644 --- a/lib/server.js +++ b/lib/server.js @@ -185,13 +185,13 @@ Server.prototype.serializeClient = function(fn, done) { var layer = stack[i]; if (!layer) { - return done(new Error('Failed to serialize client. Register serialization function using serializeClient().')); + return done(new Error('Failed to serialize client. Register serialization function using serializeClient().')); } try { layer(client, function(e, o) { pass(i + 1, e, o); } ) - } catch(e) { - return done(e); + } catch (ex) { + return done(ex); } })(0); } @@ -230,13 +230,13 @@ Server.prototype.deserializeClient = function(fn, done) { var layer = stack[i]; if (!layer) { - return done(new Error('Failed to deserialize client. Register deserialization function using deserializeClient().')); + return done(new Error('Failed to deserialize client. Register deserialization function using deserializeClient().')); } try { layer(obj, function(e, c) { pass(i + 1, e, c); } ) - } catch(e) { - return done(e); + } catch (ex) { + return done(ex); } })(0); } @@ -344,8 +344,8 @@ Server.prototype._exchange = function(type, req, res, cb) { } else { next(); } - } catch (e) { - return cb(e); + } catch (ex) { + return cb(ex); } } next(); diff --git a/test/server-test.js b/test/server-test.js index 7fa57c5a..45013133 100644 --- a/test/server-test.js +++ b/test/server-test.js @@ -1045,7 +1045,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with no serializers': { topic: function() { var self = this; @@ -1065,7 +1065,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with one serializer': { topic: function() { var self = this; @@ -1087,7 +1087,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with multiple serializers': { topic: function() { var self = this; @@ -1115,7 +1115,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with a serializer that throws an error': { topic: function() { var self = this; @@ -1138,7 +1138,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with no deserializers': { topic: function() { var self = this; @@ -1158,7 +1158,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with one deserializer': { topic: function() { var self = this; @@ -1180,7 +1180,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with multiple deserializers': { topic: function() { var self = this; @@ -1208,7 +1208,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with one deserializer that sets client to null': { topic: function() { var self = this; @@ -1230,7 +1230,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with one deserializer that sets client to false': { topic: function() { var self = this; @@ -1252,7 +1252,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with multiple deserializers, the second of which sets client to null': { topic: function() { var self = this; @@ -1280,7 +1280,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with multiple deserializers, the second of which sets client to false': { topic: function() { var self = this; @@ -1308,7 +1308,7 @@ vows.describe('Server').addBatch({ }, }, - // OK + // OK OK 'server with a deserializer that throws an error': { topic: function() { var self = this; diff --git a/test/server.serialization.test.js b/test/server.serialization.test.js index b1c35b47..45dc32ec 100644 --- a/test/server.serialization.test.js +++ b/test/server.serialization.test.js @@ -21,12 +21,12 @@ describe('Server', function() { it('should error', function() { expect(err).to.be.an.instanceOf(Error); - expect(err.message).to.equal('Failed to serialize client. Register serialization function using serializeClient().') + expect(err.message).to.equal('Failed to serialize client. Register serialization function using serializeClient().') }); }); }); - describe('one serializers', function() { + describe('one serializer', function() { var server = new Server(); server.serializeClient(function(client, done) { done(null, client.id); @@ -59,10 +59,10 @@ describe('Server', function() { done('pass'); }); server.serializeClient(function(client, done) { - done(null, 'second-serializer'); + done(null, '#2'); }); server.serializeClient(function(client, done) { - done(null, 'should-not-execute'); + done(null, '#3'); }); describe('serializing', function() { @@ -81,12 +81,36 @@ describe('Server', function() { }); it('should serialize', function() { - expect(obj).to.equal('second-serializer'); + expect(obj).to.equal('#2'); }); }); }); - describe('serializer that throws an error', function() { + describe('serializer that encounters an error', function() { + var server = new Server(); + server.serializeClient(function(client, done) { + return done(new Error('something went wrong')); + }); + + describe('serializing', function() { + var obj, err; + + before(function(done) { + server.serializeClient({ id: '1', name: 'Foo' }, function(e, o) { + err = e; + obj = o; + return done(); + }); + }); + + it('should error', function() { + expect(err).to.be.an.instanceOf(Error); + expect(err.message).to.equal('something went wrong'); + }); + }); + }); + + describe('serializer that throws an exception', function() { var server = new Server(); server.serializeClient(function(client, done) { throw new Error('something was thrown') @@ -130,12 +154,12 @@ describe('Server', function() { it('should error', function() { expect(err).to.be.an.instanceOf(Error); - expect(err.message).to.equal('Failed to deserialize client. Register deserialization function using deserializeClient().') + expect(err.message).to.equal('Failed to deserialize client. Register deserialization function using deserializeClient().') }); }); }); - describe('one deserializers', function() { + describe('one deserializer', function() { var server = new Server(); server.deserializeClient(function(id, done) { done(null, { id: id }); @@ -156,7 +180,7 @@ describe('Server', function() { expect(err).to.be.null; }); - it('should serialize', function() { + it('should deserialize', function() { expect(obj.id).to.equal('1'); }); }); @@ -168,10 +192,10 @@ describe('Server', function() { done('pass'); }); server.deserializeClient(function(id, done) { - done(null, 'second-deserializer'); + done(null, { id: '#2' }); }); server.deserializeClient(function(id, done) { - done(null, 'should-not-execute'); + done(null, { id: '#3' }); }); describe('deserializing', function() { @@ -189,13 +213,13 @@ describe('Server', function() { expect(err).to.be.null; }); - it('should serialize', function() { - expect(obj).to.equal('second-deserializer'); + it('should deserialize', function() { + expect(obj.id).to.equal('#2'); }); }); }); - describe('deserializer to null', function() { + describe('one deserializer to null', function() { var server = new Server(); server.deserializeClient(function(id, done) { done(null, null); @@ -222,7 +246,7 @@ describe('Server', function() { }); }); - describe('deserializer to false', function() { + describe('one deserializer to false', function() { var server = new Server(); server.deserializeClient(function(id, done) { done(null, false); @@ -249,7 +273,7 @@ describe('Server', function() { }); }); - describe('multiple deserializer to null', function() { + describe('multiple deserializers to null', function() { var server = new Server(); server.deserializeClient(function(obj, done) { done('pass'); @@ -258,7 +282,7 @@ describe('Server', function() { done(null, null); }); server.deserializeClient(function(obj, done) { - done(null, 'should-not-execute'); + done(null, { id: '#3' }); }); describe('deserializing', function() { @@ -282,7 +306,7 @@ describe('Server', function() { }); }); - describe('multiple deserializer to false', function() { + describe('multiple deserializers to false', function() { var server = new Server(); server.deserializeClient(function(obj, done) { done('pass'); @@ -291,7 +315,7 @@ describe('Server', function() { done(null, false); }); server.deserializeClient(function(obj, done) { - done(null, 'should-not-execute'); + done(null, { id: '#3' }); }); describe('deserializing', function() { @@ -315,7 +339,31 @@ describe('Server', function() { }); }); - describe('deserializer that throws', function() { + describe('deserializer that encounters an error', function() { + var server = new Server(); + server.deserializeClient(function(obj, done) { + return done(new Error('something went wrong')); + }); + + describe('deserializing', function() { + var obj, err; + + before(function(done) { + server.deserializeClient('1', function(e, o) { + err = e; + obj = o; + return done(); + }); + }); + + it('should error', function() { + expect(err).to.be.an.instanceOf(Error); + expect(err.message).to.equal('something went wrong') + }); + }); + }); + + describe('deserializer that throws an exception', function() { var server = new Server(); server.deserializeClient(function(obj, done) { throw new Error('something was thrown');