Преглед изворни кода

[misc] WebsocketControllerTests: explicitly pass a cb to leaveProject

...and fix the stubbing of `io.sockets.clients`.

We were running the assertions prior to the actual completion of the
 leaveProject. Which in turn shadowed the broken test setup --
 `io.sockets.clients()` was returning the `this.clientsInRoom=[]` from a
 previous context.
Jakob Ackermann пре 6 година
родитељ
комит
4d01c02946
1 измењених фајлова са 13 додато и 2 уклоњено
  1. 13 2
      services/real-time/test/unit/js/WebsocketControllerTests.js

+ 13 - 2
services/real-time/test/unit/js/WebsocketControllerTests.js

@@ -42,6 +42,7 @@ describe('WebsocketController', function () {
       leave: sinon.stub()
       leave: sinon.stub()
     }
     }
     return (this.WebsocketController = SandboxedModule.require(modulePath, {
     return (this.WebsocketController = SandboxedModule.require(modulePath, {
+      globals: { console },
       requires: {
       requires: {
         './WebApiManager': (this.WebApiManager = {}),
         './WebApiManager': (this.WebApiManager = {}),
         './AuthorizationManager': (this.AuthorizationManager = {}),
         './AuthorizationManager': (this.AuthorizationManager = {}),
@@ -393,9 +394,19 @@ describe('WebsocketController', function () {
     })
     })
 
 
     describe('when the project is not empty', function () {
     describe('when the project is not empty', function () {
-      beforeEach(function () {
+      beforeEach(function (done) {
         this.clientsInRoom = ['mock-remaining-client']
         this.clientsInRoom = ['mock-remaining-client']
-        return this.WebsocketController.leaveProject(this.io, this.client)
+        this.io = {
+          sockets: {
+            clients: (room_id) => {
+              if (room_id !== this.project_id) {
+                throw 'expected room_id to be project_id'
+              }
+              return this.clientsInRoom
+            }
+          }
+        }
+        return this.WebsocketController.leaveProject(this.io, this.client, done)
       })
       })
 
 
       return it('should not flush the project in the document updater', function () {
       return it('should not flush the project in the document updater', function () {