The missing AngularJS 1.x WebSocket module for connecting client applications to servers.
.message
works as expected in the tests (i.e. really compares expected and sent string)
_onMessageHandler
, and it seems that has been made entirely private, so I really can't.
describe('Websocket', function () {
//load module
beforeEach(module('mozaik'));
var $websocketBackend, createController;
beforeEach(angular.mock.module('ngWebSocket', 'ngWebSocketMock'));
beforeEach(inject(function ($websocketBackend) {
$websocketBackend = $websocketBackend;
$websocketBackend.mock();
$websocketBackend.expectConnect('ws://localhost:1245/api');
$websocketBackend.expectSend({data: JSON.stringify({test: true})});
}));
beforeEach(inject(function ($injector) {
// The $controller service is used to create instances of controllers
var $service = $injector.get('$service');
createController = function () {
return $service('mzksWebsocket');
};
}));
it(’test1', function () {
var mzksWebsocket = createController();
//some test
});
function eventsStream (storage, $websocket) {
const _collection = [];
return {
/**
* @param {function} callback
* @return {object}
*/
connect (callback) {
// FIXME: we have to redirect to the config state
if (storage.get('streamConfig')) {
const wsUri = 'ws://localhost:8888/api';
const dataStream = $websocket(wsUri);
dataStream.onMessage(message => {
_collection.push(JSON.parse(message.data));
if (angular.isFunction(callback)) {
callback(_collection);
}
});
} else {
return 'You have to set the stream configuration.';
}
return {
collection: _collection
};
}
};
}
describe('Unit testing eventsStream service', () => {
let $websocketBackend,
eventsStream,
storage;
beforeEach(module('mcp.gogo.services'));
beforeEach(angular.mock.module('ngWebSocket', 'ngWebSocketMock'));
beforeEach(inject((_$websocketBackend_, _eventsStream_, _storage_) => {
$websocketBackend = _$websocketBackend_;
eventsStream = _eventsStream_;
storage = _storage_;
$websocketBackend.mock();
$websocketBackend.expectConnect('ws://localhost:8888/api');
$websocketBackend.expectSend({data: JSON.stringify({test: true})});
$websocketBackend.mockSend();
}));
it('Should passes the collection to the connect callback is the configuration exists', () => {
storage.set('streamConfig', {});
eventsStream.connect(collection => {
console.log(collection);
});
$websocketBackend.flush();
});
});