diff --git a/js/apps/system/aardvark/frontend/js/templates/clusterServerView.ejs b/js/apps/system/aardvark/frontend/js/templates/clusterServerView.ejs index 79be9f7132..f7e1bc2a29 100644 --- a/js/apps/system/aardvark/frontend/js/templates/clusterServerView.ejs +++ b/js/apps/system/aardvark/frontend/js/templates/clusterServerView.ejs @@ -1,14 +1,23 @@ -

Primary Server

-
- -
+

DB Server

+<% if (minify) { %> +
+ +
+<% } else { %> + <% _.each(servers, function(v) { %> +
+ <%=v.primary.name%> + <%=v.primary.url%> + <% if (v.secondary) { %> + <%=v.secondary.name%> + <%=v.secondary.url%> + <% } %> +
+ <% }); %> +<% } %> diff --git a/js/apps/system/aardvark/frontend/js/views/clusterServerView.js b/js/apps/system/aardvark/frontend/js/views/clusterServerView.js index f9750ae409..9af7b20b2b 100644 --- a/js/apps/system/aardvark/frontend/js/views/clusterServerView.js +++ b/js/apps/system/aardvark/frontend/js/views/clusterServerView.js @@ -16,6 +16,40 @@ initialize: function() { this.dbView = new window.ClusterDatabaseView(); + + this.fakeData = [ + { + primary: { + name: "Pavel", + url: "tcp://192.168.0.1:1337", + status: "ok" + }, + secondary: { + name: "Sally", + url: "tcp://192.168.1.1:1337", + status: "ok" + } + }, + { + primary: { + name: "Pancho", + url: "tcp://192.168.0.2:1337", + status: "ok" + } + }, + { + primary: { + name: "Pablo", + url: "tcp://192.168.0.5:1337", + status: "critical" + }, + secondary: { + name: "Sandy", + url: "tcp://192.168.1.5:1337", + status: "critical" + } + } + ]; }, loadServer: function(e) { @@ -23,10 +57,14 @@ this.dbView.render({ name: id }); + this.render(true); }, - render: function(){ - $(this.el).html(this.template.render({})); + render: function(minify){ + $(this.el).html(this.template.render({ + minify: minify, + servers: this.fakeData + })); return this; } diff --git a/js/apps/system/aardvark/test/specs/views/clusterServerViewSpec.js b/js/apps/system/aardvark/test/specs/views/clusterServerViewSpec.js index d3674cef5a..16b8669486 100644 --- a/js/apps/system/aardvark/test/specs/views/clusterServerViewSpec.js +++ b/js/apps/system/aardvark/test/specs/views/clusterServerViewSpec.js @@ -1,7 +1,7 @@ /*jslint indent: 2, nomen: true, maxlen: 100, white: true plusplus: true, browser: true*/ /*global describe, beforeEach, afterEach, it, */ /*global spyOn, expect*/ -/*global templateEngine, $*/ +/*global templateEngine, $, _*/ (function() { "use strict"; @@ -24,7 +24,7 @@ describe("initialisation", function() { - it("should create a Cluster Server View", function() { + it("should create a Cluster Database View", function() { view = new window.ClusterServerView(); expect(window.ClusterDatabaseView).toHaveBeenCalled(); }); @@ -33,48 +33,136 @@ describe("rendering", function() { + var okPair, noBkp, deadBkp, deadPrim, deadPair, fakeServers, + getTile = function(name) { + return document.getElementById(name); + }, + + checkUserActions = function() { + describe("user actions", function() { + var info; + + it("should be able to navigate to each server", function() { + spyOn(view, "render"); + _.each(fakeServers, function(o) { + dbView.render.reset(); + view.render.reset(); + var name = o.primary.name; + info = { + name: name + }; + $(getTile(name)).click(); + expect(dbView.render).toHaveBeenCalledWith(info); + expect(view.render).toHaveBeenCalledWith(true); + }); + }); + + }); + }; + beforeEach(function() { spyOn(dbView, "render"); view = new window.ClusterServerView(); + okPair = { + primary: { + name: "Pavel", + url: "tcp://192.168.0.1:1337", + status: "ok" + }, + secondary: { + name: "Sally", + url: "tcp://192.168.1.1:1337", + status: "ok" + } + }; + noBkp = { + primary: { + name: "Pancho", + url: "tcp://192.168.0.2:1337", + status: "ok" + } + }; + deadBkp = { + primary: { + name: "Pepe", + url: "tcp://192.168.0.3:1337", + status: "ok" + }, + secondary: { + name: "Sam", + url: "tcp://192.168.1.3:1337", + status: "critical" + } + }; + deadPrim = { + primary: { + name: "Pedro", + url: "tcp://192.168.0.4:1337", + status: "critical" + }, + secondary: { + name: "Sabrina", + url: "tcp://192.168.1.4:1337", + status: "ok" + } + }; + deadPair = { + primary: { + name: "Pablo", + url: "tcp://192.168.0.5:1337", + status: "critical" + }, + secondary: { + name: "Sandy", + url: "tcp://192.168.1.5:1337", + status: "critical" + } + }; + fakeServers = [ + okPair, + noBkp, + deadBkp, + deadPrim + ]; + view.fakeData = fakeServers; + view.render(); }); - it("should not render the Server view", function() { - view.render(); + it("should not render the Database view", function() { expect(dbView.render).not.toHaveBeenCalled(); }); - }); + + describe("minified version", function() { - describe("user actions", function() { - var info; + beforeEach(function() { + view.render(true); + }); - beforeEach(function() { - spyOn(dbView, "render"); - view = new window.ClusterServerView(); - view.render(); + it("should render all pairs", function() { + expect($("button", $(div)).length).toEqual(4); + }); + + // TODO + + checkUserActions(); }); - it("should be able to navigate to Pavel", function() { - info = { - name: "Pavel" - }; - $("#Pavel").click(); - expect(dbView.render).toHaveBeenCalledWith(info); - }); + describe("maximised version", function() { - it("should be able to navigate to Peter", function() { - info = { - name: "Peter" - }; - $("#Peter").click(); - expect(dbView.render).toHaveBeenCalledWith(info); - }); + beforeEach(function() { + view.render(); + }); + + it("should render all pairs", function() { + expect($("> div.domino", $(div)).length).toEqual(4); + }); + + it("should render the good pair", function() { + var tile = getTile(okPair.primary.name); + }); + + checkUserActions(); - it("should be able to navigate to Paul", function() { - info = { - name: "Paul" - }; - $("#Paul").click(); - expect(dbView.render).toHaveBeenCalledWith(info); }); });