J'ai une fonction de service qui ouvre un websocket, envoie, et traite le onMessage pour la réponse. J'utilise Jasmine pour essayer de créer un test unitaire pour cette fonction.Comment est-ce que j'utilise maquette websocket pour tester onMessage dans une fonction de service?
Je veux pouvoir appeler someService dans Jasmine et recevoir un objet promesse avec une fausse réponse msg. Quelle est la meilleure façon de le faire?
callbacks = [];
self.someService= function(){
// Generate message
var msg = "someMsg";
// Create promise
var deferred = $q.defer();
callbacks[id] = deferred;
// Open Socket
var ws = $websocket("SomeConnectionPoint");
// Send request
ws.send(JSON.stringify(msg));
// Message Return
ws.onMessage(function(msg){
var data = JSON.parse(msg.data);
if (angular.isDefined(callbacks[id])) {
var callback = callbacks[id];
delete callbacks[id];
callback.resolve(msg);
ws.close();
} else {
console.error("Unhandled message", data);
}
});
return deferred.promise.then(function(response) {
return response;
});
};