From d56a88a2980ac26814895d7d07beaec93e7f2f05 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Thu, 24 Aug 2017 17:25:30 +0200
Subject: [PATCH] unit test checking if creation of chart for aliases is
 working

---
 .../src/main/js/map/window/AliasInfoWindow.js |   2 +-
 .../js/map/window/AliasInfoWindow-test.js     | 195 ++++++++++--------
 2 files changed, 112 insertions(+), 85 deletions(-)

diff --git a/frontend-js/src/main/js/map/window/AliasInfoWindow.js b/frontend-js/src/main/js/map/window/AliasInfoWindow.js
index fa365c47ef..4fb18d9a55 100644
--- a/frontend-js/src/main/js/map/window/AliasInfoWindow.js
+++ b/frontend-js/src/main/js/map/window/AliasInfoWindow.js
@@ -72,7 +72,7 @@ AliasInfoWindow.prototype.createChartDiv = function() {
   var result = document.createElement("div");
   var rows = [];
   var self = this;
-  return Promise.each(this.layoutAliases, function(data, i) {
+  return Promise.each(self.layoutAliases, function(data, i) {
     var rowDiv = document.createElement("div");
     if (i % 2 === 0) {
       rowDiv.className = "mapChartRowEvenDiv";
diff --git a/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js b/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js
index 8559d76ad1..e48b205a9f 100644
--- a/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js
+++ b/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js
@@ -1,10 +1,12 @@
 "use strict";
+require("../../mocha-config");
 
 var Promise = require("bluebird");
 
 var functions = require('../../../../main/js/Functions');
 
 var Alias = require('../../../../main/js/map/data/Alias');
+var LayoutAlias = require('../../../../main/js/map/data/LayoutAlias');
 var Drug = require('../../../../main/js/map/data/Drug');
 var AliasInfoWindow = require('../../../../main/js/map/window/AliasInfoWindow');
 var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement');
@@ -14,9 +16,9 @@ var assert = require('assert');
 
 var logger = require('../../logger');
 
-describe('AliasInfoWindow', function() {
-  describe('constructor', function() {
-    it("default", function() {
+describe('AliasInfoWindow', function () {
+  describe('constructor', function () {
+    it("default", function () {
       var map = helper.createCustomMap();
 
       var alias = helper.createAlias();
@@ -26,8 +28,8 @@ describe('AliasInfoWindow', function() {
       map.getModel().addAlias(alias);
 
       var aliasWindow = new AliasInfoWindow({
-        alias : alias,
-        map : map
+        alias: alias,
+        map: map
       });
 
       assert.equal(alias, aliasWindow.getAlias());
@@ -35,28 +37,28 @@ describe('AliasInfoWindow', function() {
       assert.ok(aliasWindow.getContent().innerHTML.indexOf("loading") >= 0);
       assert.equal(logger.getWarnings().length, 0);
     });
-    it("loading data", function() {
+    it("loading data", function () {
       var map = helper.createCustomMap();
-      map.getOverlayDataForAlias = function() {
+      map.getOverlayDataForAlias = function () {
         return Promise.resolve([]);
       };
 
       var javaObject = {
-        bounds : {
-          x : 190,
-          y : 44,
-          width : 80,
-          height : 40
+        bounds: {
+          x: 190,
+          y: 44,
+          width: 80,
+          height: 40
         },
-        modelId : map.getId(),
-        idObject : 30001
+        modelId: map.getId(),
+        idObject: 30001
       };
       var alias = new Alias(javaObject);
       map.getModel().addAlias(alias);
 
       var aliasWindow = new AliasInfoWindow({
-        alias : alias,
-        map : map
+        alias: alias,
+        map: map
       });
 
       assert.equal(alias, aliasWindow.alias);
@@ -65,29 +67,29 @@ describe('AliasInfoWindow', function() {
     });
   });
 
-  it("createOverlayInfoDiv", function() {
+  it("createOverlayInfoDiv", function () {
     var map = helper.createCustomMap();
 
     var oc = helper.createDrugDbOverlay(map);
 
     var alias = helper.createAlias(map);
     var aliasWindow = new AliasInfoWindow({
-      alias : alias,
-      map : map
+      alias: alias,
+      map: map
     });
 
-    oc.searchNamesByTarget = function() {
-      return Promise.resolve([ "xField" ]);
+    oc.searchNamesByTarget = function () {
+      return Promise.resolve(["xField"]);
     };
-    oc.getElementsByQueryFromServer = function() {
-      return Promise.resolve([ new Drug({
-        name : "xField",
-        references : [],
-        targets : [],
-      }) ]);
+    oc.getElementsByQueryFromServer = function () {
+      return Promise.resolve([new Drug({
+        name: "xField",
+        references: [],
+        targets: [],
+      })]);
     };
 
-    return oc.getDetailDataByIdentifiedElement(new IdentifiedElement(alias), true).then(function(data) {
+    return oc.getDetailDataByIdentifiedElement(new IdentifiedElement(alias), true).then(function (data) {
       var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data);
       assert.ok(functions.isDomElement(overlayDiv));
       assert.ok(overlayDiv.innerHTML.indexOf('xField') >= 0);
@@ -95,29 +97,29 @@ describe('AliasInfoWindow', function() {
 
   });
 
-  it("createDrugOverlayInfoDiv", function() {
+  it("createDrugOverlayInfoDiv", function () {
     helper.setUrl("http://test/?id=drug_target_sample");
 
     var map, ie, aliasWindow, oc;
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnector.getProject().then(function (project) {
       map = helper.createCustomMap(project);
 
       oc = helper.createDrugDbOverlay(map);
 
       ie = new IdentifiedElement({
-        id : 436152,
-        modelId : map.getId(),
-        type : "ALIAS"
+        id: 436152,
+        modelId: map.getId(),
+        type: "ALIAS"
       });
 
       return map.getModel().getByIdentifiedElement(ie, true);
-    }).then(function(alias) {
+    }).then(function (alias) {
       aliasWindow = new AliasInfoWindow({
-        alias : alias,
-        map : map
+        alias: alias,
+        map: map
       });
       return oc.getDetailDataByIdentifiedElement(ie, true);
-    }).then(function(data) {
+    }).then(function (data) {
       var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data);
       assert.ok(functions.isDomElement(overlayDiv));
       assert.ok(overlayDiv.innerHTML.indexOf('NADH') >= 0);
@@ -125,33 +127,33 @@ describe('AliasInfoWindow', function() {
     });
   });
 
-  it("createChemicalOverlayInfoDiv", function() {
+  it("createChemicalOverlayInfoDiv", function () {
     var map, ie, aliasWindow, oc;
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnector.getProject().then(function (project) {
       map = helper.createCustomMap(project);
 
       oc = helper.createChemicalDbOverlay(map);
 
       ie = new IdentifiedElement({
-        id : 329170,
-        modelId : map.getId(),
-        type : "ALIAS"
+        id: 329170,
+        modelId: map.getId(),
+        type: "ALIAS"
       });
 
       return map.getModel().getByIdentifiedElement(ie, true);
-    }).then(function(alias) {
+    }).then(function (alias) {
       aliasWindow = new AliasInfoWindow({
-        alias : alias,
-        map : map
+        alias: alias,
+        map: map
       });
       return oc.getDetailDataByIdentifiedElement(ie, true);
-    }).then(function(data) {
+    }).then(function (data) {
       var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data);
       assert.ok(functions.isDomElement(overlayDiv));
     });
   });
 
-  it("createCommentOverlayInfoDiv", function() {
+  it("createCommentOverlayInfoDiv", function () {
     var map = helper.createCustomMap();
 
     var oc = helper.createCommentDbOverlay(map);
@@ -163,11 +165,11 @@ describe('AliasInfoWindow', function() {
     map.getModel().addAlias(alias);
 
     var aliasWindow = new AliasInfoWindow({
-      alias : alias,
-      map : map
+      alias: alias,
+      map: map
     });
 
-    return oc.getDetailDataByIdentifiedElement(new IdentifiedElement(alias), true).then(function(data) {
+    return oc.getDetailDataByIdentifiedElement(new IdentifiedElement(alias), true).then(function (data) {
       var comment = helper.createComment(alias);
       comment.setContent("test comment Content");
 
@@ -183,32 +185,32 @@ describe('AliasInfoWindow', function() {
 
   });
 
-  it("createGeneticsDiv", function() {
+  it("createGeneticsDiv", function () {
     var map;
     var overlay;
 
     var layoutAlias;
     var win;
 
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnector.getProject().then(function (project) {
       map = helper.createCustomMap(project);
       overlay = new LayoutData(18077, "xxx");
       return overlay.init();
-    }).then(function() {
+    }).then(function () {
       return overlay.getFullAliasById(overlay.getAliases()[0].getId());
-    }).then(function(data) {
+    }).then(function (data) {
       layoutAlias = data;
       return map.getModel().getAliasById(layoutAlias.getId());
-    }).then(function(alias) {
+    }).then(function (alias) {
       win = new AliasInfoWindow({
-        alias : alias,
-        map : map
+        alias: alias,
+        map: map
       });
       return win.init();
-    }).then(function() {
-      win.layoutAliases = [ layoutAlias ];
+    }).then(function () {
+      win.layoutAliases = [layoutAlias];
       return win.createGenomicDiv();
-    }).then(function(div) {
+    }).then(function (div) {
       assert.ok(div);
       assert.ok(div.innerHTML.indexOf("No reference genome data available on minerva platform") === -1);
       win.destroy();
@@ -216,28 +218,28 @@ describe('AliasInfoWindow', function() {
 
   });
 
-  it("createGeneticsDiv with no genetic data", function() {
+  it("createGeneticsDiv with no genetic data", function () {
     var map;
 
     var win;
     var aliasId = 329173;
 
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnector.getProject().then(function (project) {
       map = helper.createCustomMap(project);
       var overlay = new LayoutData(18077, "xxx");
       return overlay.init();
-    }).then(function() {
+    }).then(function () {
       return map.getModel().getAliasById(aliasId);
-    }).then(function(alias) {
+    }).then(function (alias) {
       win = new AliasInfoWindow({
-        alias : alias,
-        map : map
+        alias: alias,
+        map: map
       });
       return win.init();
-    }).then(function() {
-      win.layoutAliases = [ undefined ];
+    }).then(function () {
+      win.layoutAliases = [undefined];
       return win.createGenomicDiv();
-    }).then(function(div) {
+    }).then(function (div) {
       assert.ok(div);
       assert.ok(div.innerHTML.indexOf("No reference genome data available on minerva platform") === -1);
       win.destroy();
@@ -245,36 +247,36 @@ describe('AliasInfoWindow', function() {
 
   });
 
-  it("createGeneticsDivForUnknownOrganism", function() {
+  it("createGeneticsDivForUnknownOrganism", function () {
     var map;
     var overlay;
 
     var layoutAlias;
     var win;
 
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnector.getProject().then(function (project) {
       project.setOrganism({
-        type : "TAXONOMY",
-        resource : "123456"
+        type: "TAXONOMY",
+        resource: "123456"
       });
       map = helper.createCustomMap(project);
       overlay = new LayoutData(18077, "xxx");
       return overlay.init();
-    }).then(function() {
+    }).then(function () {
       return overlay.getFullAliasById(overlay.getAliases()[0].getId());
-    }).then(function(data) {
+    }).then(function (data) {
       layoutAlias = data;
       return map.getModel().getAliasById(layoutAlias.getId());
-    }).then(function(alias) {
+    }).then(function (alias) {
       win = new AliasInfoWindow({
-        alias : alias,
-        map : map
+        alias: alias,
+        map: map
       });
       return win.init();
-    }).then(function() {
-      win.layoutAliases = [ layoutAlias ];
+    }).then(function () {
+      win.layoutAliases = [layoutAlias];
       return win.createGenomicDiv();
-    }).then(function(div) {
+    }).then(function (div) {
       assert.ok(div);
       assert.ok(div.innerHTML.indexOf("No reference genome data available on minerva platform") >= -1);
       win.destroy();
@@ -282,16 +284,41 @@ describe('AliasInfoWindow', function() {
 
   });
 
-  it("createWaitingContentDiv", function() {
+  it("createWaitingContentDiv", function () {
     var map = helper.createCustomMap();
     var alias = helper.createAlias(map);
     alias.setIsComplete(true);
 
     var aliasWindow = new AliasInfoWindow({
-      alias : alias,
-      map : map
+      alias: alias,
+      map: map
     });
 
     assert.ok(functions.isDomElement(aliasWindow.createWaitingContentDiv()));
   });
+
+  it("createChartDiv ", function () {
+    var map, ie, aliasWindow;
+    return ServerConnector.getProject().then(function (project) {
+      map = helper.createCustomMap(project);
+      ie = new IdentifiedElement({
+        id: 329170,
+        modelId: map.getId(),
+        type: "ALIAS"
+      });
+
+      return map.getModel().getByIdentifiedElement(ie, true);
+    }).then(function (alias) {
+      aliasWindow = new AliasInfoWindow({
+        alias: alias,
+        map: map
+      });
+      aliasWindow.layoutAliases = [helper.createLayoutAlias(alias), null];
+      aliasWindow.layoutNames = ["x", "y"];
+      return aliasWindow.createChartDiv();
+    }).then(function (div) {
+      assert.ok(div);
+    });
+  });
+
 });
-- 
GitLab