Adding a (failing test) for disconnecting users
authorDavid Négrier <d.negrier@thecodingmachine.com>
Tue, 28 Apr 2020 21:01:56 +0000 (23:01 +0200)
committerDavid Négrier <d.negrier@thecodingmachine.com>
Tue, 28 Apr 2020 21:01:56 +0000 (23:01 +0200)
back/tests/WorldTest.ts

index 1f5affc8ed9184a9c92bb05c475fef0d4dcb6c36..4511efc370e29ed4884b145c59600ff84f093d11 100644 (file)
@@ -12,7 +12,7 @@ describe("World", () => {
             connectCalled = true;
         }
         let disconnect = (user1: string, user2: string): void => {
-            
+
         }
 
         let world = new World(connect, disconnect);
@@ -53,14 +53,58 @@ describe("World", () => {
         }));
         expect(connectCalled).toBe(false);
     });
-    /** 
+
+    it("should disconnect user1 and user2", () => {
+        let connectCalled: boolean = false;
+        let disconnectCalled: boolean = false;
+        let connect = (user1: string, user2: string): void => {
+            connectCalled = true;
+        }
+        let disconnect = (user1: string, user2: string): void => {
+            disconnectCalled = true;
+        }
+
+        let world = new World(connect, disconnect);
+
+        world.join(new MessageUserPosition({
+            userId: "foo",
+            roomId: 1,
+            position: new Point(100, 100)
+        }));
+
+        world.join(new MessageUserPosition({
+            userId: "bar",
+            roomId: 1,
+            position: new Point(259, 100)
+        }));
+
+        expect(connectCalled).toBe(false);
+
+        world.updatePosition(new MessageUserPosition({
+            userId: "bar",
+            roomId: 1,
+            position: new Point(261, 100)
+        }));
+
+        expect(disconnectCalled).toBe(true);
+
+        disconnectCalled = false;
+        world.updatePosition(new MessageUserPosition({
+            userId: "bar",
+            roomId: 1,
+            position: new Point(262, 100)
+        }));
+        expect(disconnectCalled).toBe(false);
+    });
+
+    /**
     it('Should return the distances between all users', () => {
         let connectCalled: boolean = false;
         let connect = (user1: string, user2: string): void => {
             connectCalled = true;
         }
         let disconnect = (user1: string, user2: string): void => {
-            
+
         }
 
         let world = new World(connect, disconnect);
@@ -100,4 +144,4 @@ describe("World", () => {
         //expect(distances).toBe([]);
     })
     **/
-})
\ No newline at end of file
+})