diff --git a/src/ng-socket-io.js b/src/ng-socket-io.js index 28dfb7f..50ade81 100644 --- a/src/ng-socket-io.js +++ b/src/ng-socket-io.js @@ -87,6 +87,9 @@ angular.module('socket-io', []).factory('socket', function($rootScope, io) { else { socket.emit(name, data); } + }, + disconnect: function(){ + socket.disconnect(); } }; diff --git a/test/ng-socket-io.spec.js b/test/ng-socket-io.spec.js index 57d39ab..673337d 100644 --- a/test/ng-socket-io.spec.js +++ b/test/ng-socket-io.spec.js @@ -7,7 +7,7 @@ describe('socket-io module', function() { beforeEach(function() { module('socket-io'); - socket = jasmine.createSpyObj('socket', ['on', 'once', 'removeListener', 'removeAllListeners', 'emit']); + socket = jasmine.createSpyObj('socket', ['on', 'once', 'removeListener', 'removeAllListeners', 'emit', 'disconnect']); socket.on.andCallFake(function(name, callback) { currentCallback = callback; }); socket.once = socket.on; socket.emit.andCallFake(function(name, data, callback) { currentCallback = callback; }); @@ -162,6 +162,17 @@ describe('socket-io module', function() { expect($rootScope.$digest).toHaveBeenCalled(); }); }); + + describe('disconnect method', function(){ + it('calls the dissconnect method', function(){ + //Act + sut.disconnect(); + + //Assert + expect(socket.disconnect).toHaveBeenCalled(); + }); + + }); }); }()); \ No newline at end of file