From 732d5d05c069dfe1d379ed3d83c3975ef4771837 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Sun, 11 Dec 2016 18:13:10 +0100
Subject: [PATCH] getReactions follows promises in a better way

---
 frontend-js/src/main/js/ServerConnector.js    | 25 +++++++++++--------
 .../src/test/js/map/data/MapModel-test.js     | 19 +++++++-------
 2 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index 2389e7ae83..389d0b7d5f 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -971,17 +971,20 @@ ServerConnector.getOverlayById = function(layoutId, projectId) {
 ServerConnector.getReactions = function(reactionIds, projectId, columns) {
   var self = this;
   return new Promise(function(resolve, reject) {
-    self.getProjectId(projectId).then(function(projectId) {
-      self.getToken().then(function(token) {
-        self.readFile(self.getReactionsUrl(reactionIds, projectId, token, columns)).then(function(content) {
-          var result = [];
-          for (var i = 0; i < content.length; i++) {
-            result.push(new Reaction(content[i]))
-          }
-          resolve(result);
-        }, reject);
-      }, reject);
-    }, reject);
+    self.getProjectId(projectId).then(function(result) {
+      projectId = result;
+      return self.getToken();
+    }).then(function(token) {
+      return self.readFile(self.getReactionsUrl(reactionIds, projectId, token, columns));
+    }).then(function(content) {
+      var result = [];
+      for (var i = 0; i < content.length; i++) {
+        result.push(new Reaction(content[i]))
+      }
+      resolve(result);
+    }).catch(function(exception){
+      reject(exception);
+    });
   });
 };
 
diff --git a/frontend-js/src/test/js/map/data/MapModel-test.js b/frontend-js/src/test/js/map/data/MapModel-test.js
index 5a698f55d3..2266e69b68 100644
--- a/frontend-js/src/test/js/map/data/MapModel-test.js
+++ b/frontend-js/src/test/js/map/data/MapModel-test.js
@@ -106,25 +106,26 @@ describe('MapModel', function() {
     assert.equal(logger.getWarnings().length, 1);
   });
 
-  it("addReaction(Reaction) 1", function(done) {
+  it("getReactionById 1", function() {
     var model = helper.createModel();
 
     var reaction = helper.createReaction();
 
-    model.getReactionById(reaction.getId()).then(function(result){
+    return model.getReactionById(reaction.getId()).then(function(result){
       assert.equal(null, result);
     }).catch(function(exception) {
-      assert.ok(exception);
+      //check if this is exception about not finding file
+      logger.debug(exception);
+      assert.ok(exception.path);
       model.addReaction(reaction);
-      model.getReactionById(reaction.getId()).then(function(result){
-        assert.equal(reaction, result);
-         done();
-      });
-    });
+      return model.getReactionById(reaction.getId());
+    }).then(function(result){
+      assert.equal(reaction, result);
+    });;
 
   });
 
-  it("addReaction(Reaction) 2", function() {
+  it("getReactionById 2", function() {
     var model = helper.createModel();
     
     var reaction = helper.createReaction();
-- 
GitLab