1
0
Fork 0

Increased test coverage of new foxx views. All positive pathes are now covered. Error handling not yet

This commit is contained in:
Michael Hackstein 2015-02-06 08:22:57 +01:00
parent adbb956b6f
commit 6ba7bf6918
6 changed files with 175 additions and 9 deletions

View File

@ -15,12 +15,12 @@
comparator: function(item, item2) {
var a, b;
if (this.sortOptions.desc === true) {
a = item.get('name');
b = item2.get('name');
a = item.get('mount');
b = item2.get('mount');
return a < b ? 1 : a > b ? -1 : 0;
}
a = item.get('name');
b = item2.get('name');
a = item.get('mount');
b = item2.get('mount');
return a > b ? 1 : a < b ? -1 : 0;
},

View File

@ -26,8 +26,8 @@
},
toggleDevelopment: function() {
this.model.toggleDevelopment(!this.model.get("development"), function() {
if (this.model.get("development")) {
this.model.toggleDevelopment(!this.model.isDevelopment(), function() {
if (this.model.isDevelopment()) {
$("#app-switch-mode").val("Production");
$("#app-development-indicator").css("display", "inline");
} else {
@ -143,6 +143,14 @@
msg: "Has to be an integer."
}];
/* falls through */
case "number":
if (check === undefined) {
check = [{
rule: Joi.number().optional().allow(""),
msg: "Has to be a number."
}];
}
/* falls through */
default:
if (check === undefined) {
check = [{

View File

@ -22,17 +22,17 @@
toggle: function(type, shouldShow) {
switch (type) {
case "devel":
if (this.model.get("development") === true) {
if (this.model.isDevelopment()) {
this._show = shouldShow;
}
break;
case "production":
if (this.model.get("development") === false && this.model.get("system") === false) {
if (!this.model.isDevelopment() && !this.model.isSystem()) {
this._show = shouldShow;
}
break;
case "system":
if (this.model.get("system") === true) {
if (this.model.isSystem()) {
this._show = shouldShow;
}
break;

View File

@ -5,6 +5,7 @@
{ "pattern": "clusterFrontend/js/templates/*.ejs", "served": true, "included": false, "watched": true},
"frontend/js/lib/jquery-2.1.0.min.js",
"test/mocks/overwriteAjax.js",
"test/mocks/createDummy.js",
"frontend/js/lib/jquery-ui-1.9.2.custom.js",
"frontend/js/lib/jquery.autogrow.js",
"frontend/js/lib/jquery.jeditable.js",
@ -248,6 +249,7 @@
"test/specs/views/apiViewSpec.js",
"test/specs/views/applicationsViewSpec.js",
"test/specs/views/applicationDetailViewSpec.js",
"test/specs/views/modalViewSpec.js",
"test/specs/views/editListEntryViewSpec.js",
"test/specs/views/collectionsViewSpec.js",

View File

@ -30,6 +30,34 @@
expect(col.url).toEqual("/_admin/aardvark/foxxes");
});
describe("sorting apps", function() {
var first, second, third;
beforeEach(function() {
first = "/_test";
second = "/aal";
third = "/zztop";
col.add({mount: second});
col.add({mount: third});
col.add({mount: first});
});
it("should always be by mount", function() {
col.sort();
expect(col.models[0].get("mount")).toEqual(first);
expect(col.models[1].get("mount")).toEqual(second);
expect(col.models[2].get("mount")).toEqual(third);
});
it("should be by mount and reversable", function() {
col.setSortingDesc(true);
col.sort();
expect(col.models[2].get("mount")).toEqual(first);
expect(col.models[1].get("mount")).toEqual(second);
expect(col.models[0].get("mount")).toEqual(third);
});
});
describe("installing apps", function() {
it("should generate an app", function() {

View File

@ -194,6 +194,131 @@
});
describe("with different configuration types", function() {
var valid1, valid3, valid4, def;
beforeEach(function() {
runs(function() {
valid1 = "Value";
valid3 = "4.5";
valid4 = "4";
def = "default";
config.data.opt1 = {
type: "string",
description: "My String"
};
config.data.opt2 = {
type: "boolean",
description: "My Bool"
};
config.data.opt3 = {
type: "number",
description: "My Number"
};
config.data.opt4 = {
type: "integer",
description: "My Integer"
};
config.data.opt5 = {
type: "string",
description: "My String",
default: def
};
view.render();
$(buttonId).click();
});
waitsFor(function () {
return $("#modal-dialog").css("display") === "block";
}, "The configure App dialog should be shown", 750);
});
it("should not allow to configure if the string is empty", function() {
$("#app_config_opt1").val("");
$("#app_config_opt3").val(valid3);
$("#app_config_opt4").val(valid4);
$("#app_config_opt4").keyup();
expect($("#modalButton1").prop("disabled")).toBeTruthy();
});
it("should not allow to configure if the number is empty", function() {
$("#app_config_opt1").val(valid1);
$("#app_config_opt3").val("");
$("#app_config_opt4").val(valid4);
$("#app_config_opt4").keyup();
expect($("#modalButton1").prop("disabled")).toBeTruthy();
});
it("should not allow to configure if the number is invalid", function() {
$("#app_config_opt1").val(valid1);
$("#app_config_opt3").val("invalid");
$("#app_config_opt4").val(valid4);
$("#app_config_opt4").keyup();
expect($("#modalButton1").prop("disabled")).toBeTruthy();
});
it("should not allow to configure if the integer is empty", function() {
$("#app_config_opt1").val(valid1);
$("#app_config_opt3").val(valid3);
$("#app_config_opt4").val("");
$("#app_config_opt4").keyup();
expect($("#modalButton1").prop("disabled")).toBeTruthy();
});
it("should not allow to configure if the integer is invalid", function() {
$("#app_config_opt1").val(valid1);
$("#app_config_opt3").val(valid3);
$("#app_config_opt4").val("invalid");
$("#app_config_opt4").keyup();
expect($("#modalButton1").prop("disabled")).toBeTruthy();
});
it("should not allow to configure if the integer is not integer", function() {
$("#app_config_opt1").val(valid1);
$("#app_config_opt3").val(valid3);
$("#app_config_opt4").val("4.5");
$("#app_config_opt4").keyup();
expect($("#modalButton1").prop("disabled")).toBeTruthy();
});
it("should allow to configure if all values are valid", function() {
runs(function() {
$("#app_config_opt1").val(valid1);
$("#app_config_opt3").val(valid3);
$("#app_config_opt4").val(valid4);
$("#app_config_opt4").keyup();
expect($("#modalButton1").prop("disabled")).toBeFalsy();
spyOn(appDummy, "setConfiguration").andCallFake(function(data, callback) {
callback({
error: false
});
});
$("#modalButton1").click();
});
waitsFor(function () {
return $("#modal-dialog").css("display") === "none";
}, "The configure App dialog should be hidden.", 750);
runs(function() {
expect(appDummy.setConfiguration).toHaveBeenCalledWith(
{
opt1: valid1,
opt2: false,
opt3: 4.5,
opt4: 4,
opt5: def
},
jasmine.any(Function)
);
});
});
});
});
describe("if not required", function() {
@ -207,6 +332,9 @@
it("the button should be disabled", function() {
expect($(buttonId).hasClass("disabled")).toEqual(true);
spyOn(window.modalView, "show");
$(buttonId).click();
expect(window.modalView.show).not.toHaveBeenCalled();
});
});