[Groonga-commit] groonga/express-kotoumi [master] test: Add test for overridden request and response for Socket.IO API

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index