[Groonga-commit] groonga/express-kotoumi [master] test: Disconnect socket.io clients from express-kotoumi with mocked backends correctly

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Jan 30 13:08:03 JST 2013


YUKI Hiroshi	2013-01-30 13:08:03 +0900 (Wed, 30 Jan 2013)

  New Revision: 806136f03d589a654f9e433fdd28b9b32e3bf015
  https://github.com/groonga/express-kotoumi/commit/806136f03d589a654f9e433fdd28b9b32e3bf015

  Log:
    test: Disconnect socket.io clients from express-kotoumi with mocked backends correctly

  Modified files:
    test/express-adaptor.test.js
    test/frontend-socket.io-handler.test.js
    test/test-utils.js

  Modified: test/express-adaptor.test.js (+9 -4)
===================================================================
--- test/express-adaptor.test.js    2013-01-30 12:52:32 +0900 (79e0195)
+++ test/express-adaptor.test.js    2013-01-30 13:08:03 +0900 (c655055)
@@ -76,10 +76,15 @@ suite('Adaption for express application', function() {
   });
 
   suite('Socket.IO API', function() {
+    var connection;
     var server;
     var clientSocket;
 
     teardown(function() {
+      if (connection) {
+        utils.readyToDestroyMockedConnection(connection);
+        connection = undefined;
+      }
       if (clientSocket) {
         clientSocket.disconnect();
         clientSocket = undefined;
@@ -92,9 +97,9 @@ suite('Adaption for express application', function() {
 
     test('front to back', function(done) {
       var handlersFactory = utils.createMockedHandlersFactory();
-      var connection = utils.createMockedBackendConnection()
-            .mock('emitMessage')
-              .takes('search', { requestMessage: true });
+      connection = utils.createMockedBackendConnection()
+        .mock('emitMessage')
+          .takes('search', { requestMessage: true });
 
       var application = express();
       utils.setupServer(application)
@@ -125,7 +130,7 @@ suite('Adaption for express application', function() {
 
     test('back to front', function(done) {
       var handlersFactory = utils.createMockedHandlersFactory();
-      var connection = utils.createMockedBackendConnection();
+      connection = utils.createMockedBackendConnection();
 
       var clientReceiver = nodemock
             .mock('receive')

  Modified: test/frontend-socket.io-handler.test.js (+15 -10)
===================================================================
--- test/frontend-socket.io-handler.test.js    2013-01-30 12:52:32 +0900 (c480e16)
+++ test/frontend-socket.io-handler.test.js    2013-01-30 13:08:03 +0900 (47c09de)
@@ -9,10 +9,15 @@ var socketIoHandler = require('../lib/frontend/socket.io-handler');
 var Connection = require('../lib/backend/connection').Connection;
 
 suite('Socket.IO API', function() {
+    var connection;
   var server;
   var clientSocket;
 
   teardown(function() {
+    if (connection) {
+      utils.readyToDestroyMockedConnection(connection);
+      connection = undefined;
+    }
     if (clientSocket) {
       clientSocket.disconnect();
       clientSocket = undefined;
@@ -24,9 +29,9 @@ suite('Socket.IO API', function() {
   });
 
   test('front to back', function(done) {
-    var connection = utils.createMockedBackendConnection()
-          .mock('emitMessage')
-            .takes('search', { requestMessage: true });
+    connection = utils.createMockedBackendConnection()
+      .mock('emitMessage')
+        .takes('search', { requestMessage: true });
 
     var application = express();
     utils.setupServer(application)
@@ -53,7 +58,7 @@ suite('Socket.IO API', function() {
   });
 
   test('back to front', function(done) {
-    var connection = utils.createMockedBackendConnection();
+    connection = utils.createMockedBackendConnection();
 
     var clientReceiver = nodemock
           .mock('receive')
@@ -100,12 +105,12 @@ suite('Socket.IO API', function() {
 
   test('front to back, extra command', function(done) {
     var extraController = {};
-    var connection = utils.createMockedBackendConnection()
-          .mock('on')
-            .takes('message', function() {})
-            .ctrl(1, extraController)
-          .mock('emitMessage')
-            .takes('foobar', { requestMessage: true });
+    connection = utils.createMockedBackendConnection()
+      .mock('on')
+        .takes('message', function() {})
+        .ctrl(1, extraController)
+      .mock('emitMessage')
+        .takes('foobar', { requestMessage: true });
 
     var application = express();
     utils.setupServer(application)

  Modified: test/test-utils.js (+11 -0)
===================================================================
--- test/test-utils.js    2013-01-30 12:52:32 +0900 (130ec8d)
+++ test/test-utils.js    2013-01-30 13:08:03 +0900 (032436c)
@@ -157,6 +157,17 @@ function createMockedBackendConnection() {
 }
 exports.createMockedBackendConnection = createMockedBackendConnection;
 
+function readyToDestroyMockedConnection(connection) {
+  connection = connection
+    .mock('removeListener')
+      .takes('message', function() {})
+      .times(socketIoHandler.commands.length)
+    .mock('removeListener')
+      .takes('error', function() {});
+  return connection;
+}
+exports.readyToDestroyMockedConnection = readyToDestroyMockedConnection;
+
 function createMockedHandlersFactory() {
   return nodemock
     .mock('search')
-------------- next part --------------
HTML����������������������������...
Télécharger 



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