YUKI Hiroshi
null+****@clear*****
Wed Feb 6 17:42:49 JST 2013
YUKI Hiroshi 2013-02-06 17:42:49 +0900 (Wed, 06 Feb 2013) New Revision: 76f5ffc8a89744580d0daa42393b9e573489cc5f https://github.com/groonga/express-kotoumi/commit/76f5ffc8a89744580d0daa42393b9e573489cc5f Log: test: Add test for overridden request and response for Socket.IO API Modified files: test/frontend-socket.io-adaptor.test.js Modified: test/frontend-socket.io-adaptor.test.js (+62 -4) =================================================================== --- test/frontend-socket.io-adaptor.test.js 2013-02-06 17:42:23 +0900 (8335f2f) +++ test/frontend-socket.io-adaptor.test.js 2013-02-06 17:42:49 +0900 (c96e9a9) @@ -196,7 +196,20 @@ suite('Socket.IO API', function() { }); }); - test('front to back, extra command', function(done) { + var testPlugin = { + 'foobar': { + }, + 'builder': { + requestBuilder: function() { return 'builder request'; }, + responseBuilder: function() { return 'builder response' } + }, + 'customevent': { + resoonseEvent: 'custom', + responseBuilder: function() { return 'custom response' } + } + }; + + test('front to back, extra command (without builder)', function(done) { var extraController = {}; connection = utils.createMockedBackendConnection() .mock('emitMessage') @@ -208,9 +221,7 @@ suite('Socket.IO API', function() { server = newServer; socketIoAdaptor.register(application, server, { connection: connection, - plugins: [ - { 'foobar': {} } - ] + plugins: [testPlugin] }); return utils.createClientSocket(); @@ -228,5 +239,52 @@ suite('Socket.IO API', function() { done(error); }); }); + + test('front to back, extra command (with builder)', function(done) { + var extraController = {}; + connection = utils.createMockedBackendConnection() + .mock('emitMessage') + .takes('builder', 'builder request'); + + var mockedReceiver = nodemock + .mock('receive') + .takes('builder response'); + + var application = express(); + utils.setupServer(application) + .next(function(newServer) { + server = newServer; + socketIoAdaptor.register(application, server, { + connection: connection, + plugins: [testPlugin] + }); + + return utils.createClientSocket(); + }) + .next(function(newClientSocket) { + clientSocket = newClientSocket; + clientSocket.on('builder.result', function(data) { + mockedReceiver.receive(data); + }); + clientSocket.emit('builder', { requestMessage: true }); + }) + .wait(0.01) + .next(function() { + connection.assertThrows(); + connection.controllers.message.trigger({ + statusCode: 200, + type: 'builder.result', + body: { responseMessage: true } + }); + }) + .wait(0.01) + .next(function() { + mockedReceiver.assertThrows(); + done(); + }) + .error(function(error) { + done(error); + }); + }); }); -------------- next part -------------- HTML����������������������������...Download