Skip to content

Commit

Permalink
Clean up test cases for serialization.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredhanson committed Sep 18, 2013
1 parent 6635977 commit 533b210
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 40 deletions.
16 changes: 8 additions & 8 deletions lib/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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);
}
Expand Down Expand Up @@ -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();
Expand Down
24 changes: 12 additions & 12 deletions test/server-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1045,7 +1045,7 @@ vows.describe('Server').addBatch({
},
},

// OK
// OK OK
'server with no serializers': {
topic: function() {
var self = this;
Expand All @@ -1065,7 +1065,7 @@ vows.describe('Server').addBatch({
},
},

// OK
// OK OK
'server with one serializer': {
topic: function() {
var self = this;
Expand All @@ -1087,7 +1087,7 @@ vows.describe('Server').addBatch({
},
},

// OK
// OK OK
'server with multiple serializers': {
topic: function() {
var self = this;
Expand Down Expand Up @@ -1115,7 +1115,7 @@ vows.describe('Server').addBatch({
},
},

// OK
// OK OK
'server with a serializer that throws an error': {
topic: function() {
var self = this;
Expand All @@ -1138,7 +1138,7 @@ vows.describe('Server').addBatch({
},
},

// OK
// OK OK
'server with no deserializers': {
topic: function() {
var self = this;
Expand All @@ -1158,7 +1158,7 @@ vows.describe('Server').addBatch({
},
},

// OK
// OK OK
'server with one deserializer': {
topic: function() {
var self = this;
Expand All @@ -1180,7 +1180,7 @@ vows.describe('Server').addBatch({
},
},

// OK
// OK OK
'server with multiple deserializers': {
topic: function() {
var self = this;
Expand Down Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -1308,7 +1308,7 @@ vows.describe('Server').addBatch({
},
},

// OK
// OK OK
'server with a deserializer that throws an error': {
topic: function() {
var self = this;
Expand Down
88 changes: 68 additions & 20 deletions test/server.serialization.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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() {
Expand All @@ -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')
Expand Down Expand Up @@ -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 });
Expand All @@ -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');
});
});
Expand All @@ -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() {
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -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');
Expand All @@ -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() {
Expand All @@ -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');
Expand All @@ -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() {
Expand All @@ -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');
Expand Down

0 comments on commit 533b210

Please sign in to comment.