Skip to content
Snippets Groups Projects
Verified Commit 2e4e6f60 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

STY: js-beautified tests in form_elements.js.js

parent c01b4719
No related branches found
No related tags found
1 merge request!37prepare release v0.3.1
......@@ -23,7 +23,7 @@
'use strict';
QUnit.module("form_elements.js", {
before: function(assert) {
before: function (assert) {
markdown.init();
var entities = [
$('<div><div class="caosdb-id" data-entity-name="name12">id12</div></div>')[0],
......@@ -32,27 +32,27 @@ QUnit.module("form_elements.js", {
$('<div><div class="caosdb-id" data-entity-name="name15">id15</div></div>')[0],
];
form_elements._query = async function(query) {
form_elements._query = async function (query) {
return entities;
};
this.get_example_1 = async function() {
this.get_example_1 = async function () {
return $(await $.ajax("html/form_elements_example_1.html"))[0];
};
},
after: function(assert) {
after: function (assert) {
form_elements._init_functions();
}
});
QUnit.test("availability", function(assert) {
QUnit.test("availability", function (assert) {
assert.equal(form_elements.version, "0.1", "test version");
assert.ok(form_elements.init, "init available");
assert.ok(form_elements.version, "version available");
});
QUnit.test("make_reference_option", function(assert) {
QUnit.test("make_reference_option", function (assert) {
assert.equal(typeof form_elements.make_reference_option, "function", "function available");
assert.throws(()=>form_elements.make_reference_option(), /is expected to be a string/, "noargs throws");
assert.throws(() => form_elements.make_reference_option(), /is expected to be a string/, "noargs throws");
var option = form_elements.make_reference_option("id15");
assert.equal($(option).val(), "id15", "value");
assert.equal($(option).text(), "id15", "text");
......@@ -62,12 +62,17 @@ QUnit.test("make_reference_option", function(assert) {
});
QUnit.test("make_reference_select", async function(assert) {
QUnit.test("make_reference_select", async function (assert) {
assert.equal(typeof form_elements.make_reference_select, "function", "function available");
var select = await form_elements.make_reference_select([
{dataset: {entityId : "id17"}},
{dataset: {entityId : "id18"}},
]);
var select = await form_elements.make_reference_select([{
dataset: {
entityId: "id17"
}
}, {
dataset: {
entityId: "id18"
}
}, ]);
assert.ok($(select).hasClass("selectpicker"), "selectpicker class from bootstrap-select");
assert.notOk($(select).val(), "unselected");
$(select).val(["id18"]);
......@@ -84,7 +89,7 @@ QUnit.test("make_reference_select", async function(assert) {
});
QUnit.test("make_script_form", async function(assert) {
QUnit.test("make_script_form", async function (assert) {
assert.equal(typeof form_elements.make_script_form, "function", "function available");
// TODO
......@@ -94,17 +99,31 @@ QUnit.test("make_script_form", async function(assert) {
var done = assert.async(3);
var config = {
groups: [
{ name: "group1", fields: ["date"], enabled: false },
],
fields: [
{type: "date", name: "baldate"},
{type: "select", name: "Sex", label: "Sex", value: "female", required: true, options: [
{ value: "female", label: "female" },
{ value: "diverse", label: "diverse" },
{ value: "male", label: "male" }
]}
],
groups: [{
name: "group1",
fields: ["date"],
enabled: false
}, ],
fields: [{
type: "date",
name: "baldate"
}, {
type: "select",
name: "Sex",
label: "Sex",
value: "female",
required: true,
options: [{
value: "female",
label: "female"
}, {
value: "diverse",
label: "diverse"
}, {
value: "male",
label: "male"
}]
}],
};
var script_form = await form_elements.make_script_form(config, "test_script");
......@@ -122,21 +141,25 @@ QUnit.test("make_script_form", async function(assert) {
assert.equal(field.find("input[type='date']").length, 1, "has date input");
assert.equal(field.find("select").length, 1, "has select input");
script_form.addEventListener("caosdb.form.cancel", function(e) {
script_form.addEventListener("caosdb.form.cancel", function (e) {
done();
}, true);
cancel_button.click();
script_form.addEventListener("caosdb.form.error", function(e) {
script_form.addEventListener("caosdb.form.error", function (e) {
assert.equal($(script_form).find(".caosdb-f-form-elements-message-error").length, 2, "error message there (call and stderr)");
done();
script_form.remove();
});
form_elements._run_script = async function(script, params) {
form_elements._run_script = async function (script, params) {
done();
return {code: "1", stderr: "Autsch!", call: "none"};
return {
code: "1",
stderr: "Autsch!",
call: "none"
};
};
assert.equal($(script_form).find(".caosdb-f-form-error-message").length, 0, "no error message");
......@@ -148,7 +171,7 @@ QUnit.test("make_script_form", async function(assert) {
});
QUnit.test("make_date_input", function(assert) {
QUnit.test("make_date_input", function (assert) {
assert.equal(typeof form_elements.make_date_input, "function", "function available");
var config = {
......@@ -168,7 +191,7 @@ QUnit.test("make_date_input", function(assert) {
});
QUnit.test("make_range_input", async function(assert) {
QUnit.test("make_range_input", async function (assert) {
assert.equal(typeof form_elements.make_range_input, "function", "function available");
var config = {
......@@ -196,20 +219,27 @@ QUnit.test("make_range_input", async function(assert) {
});
QUnit.test("make_form_field", async function(assert) {
QUnit.test("make_form_field", async function (assert) {
assert.equal(typeof form_elements.make_form_field, "function", "function available");
var cached = false;
for ( var t of ["date", "range", "reference_drop_down", "subform", "checkbox", "double", "integer"] ) {
var cached = false;
for (var t of ["date", "range", "reference_drop_down", "subform", "checkbox", "double", "integer"]) {
cached = !cached;
var config = {
help: {title: "HELP", content: "help me, help me, help me-e-e!"},
help: {
title: "HELP",
content: "help me, help me, help me-e-e!"
},
type: t,
cached: cached,
name: "a name",
label: "a label",
from: {name: "from_bla"},
to: {name: "to_bla"},
from: {
name: "from_bla"
},
to: {
name: "to_bla"
},
query: "FIND something",
make_desc: getEntityName,
fields: [],
......@@ -224,7 +254,7 @@ QUnit.test("make_form_field", async function(assert) {
});
QUnit.test("make_subform", async function(assert) {
QUnit.test("make_subform", async function (assert) {
assert.equal(typeof form_elements.make_subform, "function", "function available");
const config = {
......@@ -243,7 +273,7 @@ QUnit.test("make_subform", async function(assert) {
});
QUnit.test("make_reference_drop_down", async function(assert) {
QUnit.test("make_reference_drop_down", async function (assert) {
assert.equal(typeof form_elements.make_reference_drop_down, "function", "function available");
var config = {
......@@ -261,7 +291,7 @@ QUnit.test("make_reference_drop_down", async function(assert) {
assert.equal(label.text(), "IceCore", "label has text");
});
QUnit.test("make_checkbox_input", function(assert) {
QUnit.test("make_checkbox_input", function (assert) {
assert.equal(typeof form_elements.make_checkbox_input, "function", "function available");
......@@ -296,19 +326,54 @@ QUnit.test("make_checkbox_input", function(assert) {
});
QUnit.test("form_to_object", async function(assert) {
QUnit.test("form_to_object", async function (assert) {
assert.equal(typeof form_elements.form_to_object, "function", "function available");
var config = {
fields: [
{ type: "date", name: "the-date" },
{ type: "reference_drop_down", name: "icecore", query: "FIND Record IceCore"},
{ type: "range", name: "the-range", from: {name: "fromblla"}, to: {name: "toblla"}},
{ type: "subform", name: "subform1", fields: [
{ type: "date", name: "the-other-date", },
{ type: "checkbox", name: "rectangular", },
],},
],
fields: [{
type: "date",
name: "the-date"
}, {
type: "reference_drop_down",
name: "icecore",
query: "FIND Record IceCore"
}, {
type: "range",
name: "the-range",
from: {
name: "fromblla"
},
to: {
name: "toblla"
}
}, {
type: "subform",
name: "subform1",
fields: [{
type: "date",
name: "the-other-date",
}, {
type: "checkbox",
name: "rectangular",
}, ],
}, {
type: "select",
required: true,
cached: true,
name: "sex",
label: "Sex",
value: "d",
options: [{
"value": "f",
"label": "female"
}, {
"value": "d",
"label": "diverse"
}, {
"value": "m",
"label": "male"
}, ],
}, ],
};
var form = await form_elements.make_script_form(config, "bla");
......@@ -320,6 +385,7 @@ QUnit.test("form_to_object", async function(assert) {
assert.equal(json["icecore"], null, "reference_drop_down");
assert.equal(json["fromblla"], "", "range from");
assert.equal(json["toblla"], "", "range to");
assert.equal(json["sex"], "d", "select");
assert.equal(typeof json["the-other-date"], "undefined", "subform element not on root level");
var subform = json["subform1"];
......@@ -331,10 +397,13 @@ QUnit.test("form_to_object", async function(assert) {
});
QUnit.test("make_double_input", function(assert) {
QUnit.test("make_double_input", function (assert) {
assert.equal(typeof form_elements.make_double_input, "function", "function available");
var config = {type: "double", name: "d"};
var config = {
type: "double",
name: "d"
};
var input = $(form_elements.make_double_input(config)).find("input");
assert.ok(input.is("[type='number'][step='any']"), "double input");
......@@ -344,10 +413,13 @@ QUnit.test("make_double_input", function(assert) {
});
QUnit.test("make_integer_input", function(assert) {
QUnit.test("make_integer_input", function (assert) {
assert.equal(typeof form_elements.make_integer_input, "function", "function available");
var config = {type: "integer", name: "i"};
var config = {
type: "integer",
name: "i"
};
var input = $(form_elements.make_integer_input(config)).find("input");
assert.ok(input.is("[type='number'][step='1']"), "integer input");
......@@ -356,21 +428,26 @@ QUnit.test("make_integer_input", function(assert) {
assert.equal(input.val("abc").val(), "", "abc not valid");
});
QUnit.test("make_form", function(assert) {
QUnit.test("make_form", function (assert) {
assert.equal(typeof form_elements.make_form, "function", "function available");
var form1 = form_elements.make_form({fields: []});
var form1 = form_elements.make_form({
fields: []
});
assert.equal(form1.tagName, "DIV", "wrapper is div");
assert.ok($(form1).hasClass("caosdb-f-form-wrapper"), "div has caosdb-f-form-wrapper class");
assert.equal($(form1).find(".h3").length, 0, "no header");
var form2 = form_elements.make_form({fields: [], header: "bla"});
var form2 = form_elements.make_form({
fields: [],
header: "bla"
});
assert.equal(form2.tagName, "DIV", "wrapper is div");
assert.equal($(form2).find(".h3").length, 1, "one header");
assert.equal($(form2).find(".h3").text(), "bla", "header text set");
});
QUnit.test("enable/disable_group", function(assert) {
QUnit.test("enable/disable_group", function (assert) {
assert.equal(typeof form_elements.disable_group, "function", "function available");
assert.equal(typeof form_elements.enable_group, "function", "function available");
......@@ -417,11 +494,11 @@ QUnit.test("enable/disable_group", function(assert) {
});
QUnit.test("parse_script_result", function(assert) {
QUnit.test("parse_script_result", function (assert) {
assert.equal(typeof form_elements.parse_script_result, "function", "function available");
var result = str2xml(
`<?xml version="1.0" encoding="UTF-8"?>
`<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="https://localhost:10443/webinterface/webcaosdb.xsl" ?>
<Response username="admin" realm="PAM" srid="256c14970dac2b2b5649973d52e4c06a" timestamp="1570785591824" baseuri="https://localhost:10443">
<UserInfo username="admin" realm="PAM">
......@@ -447,15 +524,15 @@ QUnit.test("parse_script_result", function(assert) {
});
QUnit.test("disable_name", function(assert) {
QUnit.test("disable_name", function (assert) {
assert.equal(typeof form_elements.disable_name, "function", "function available");
});
QUnit.test("enable_name", function(assert) {
QUnit.test("enable_name", function (assert) {
assert.equal(typeof form_elements.enable_name, "function", "function available");
});
QUnit.test("add_field_to_group", function(assert) {
QUnit.test("add_field_to_group", function (assert) {
assert.equal(typeof form_elements.add_field_to_group, "function", "function available");
var field = $(form_elements._make_field_wrapper("field1"))[0];
......@@ -466,7 +543,7 @@ QUnit.test("add_field_to_group", function(assert) {
});
QUnit.test("cache_form", async function(assert) {
QUnit.test("cache_form", async function (assert) {
var form = await this.get_example_1();
assert.equal($(form).find("form").length, 1, "example form available");
......@@ -480,7 +557,7 @@ QUnit.test("cache_form", async function(assert) {
});
QUnit.test("load_cached", async function(assert) {
QUnit.test("load_cached", async function (assert) {
var done = assert.async();
var form = await this.get_example_1();
assert.equal($(form).find("form").length, 1, "example form available");
......@@ -502,7 +579,7 @@ QUnit.test("load_cached", async function(assert) {
});
QUnit.test("field_ready", function(assert) {
QUnit.test("field_ready", function (assert) {
var done = assert.async(3);
var field1 = $('<div id="f1"><div class="caosdb-f-field-not-ready"/></div>')[0];
var field2 = $('<div id="f2" class="caosdb-f-field-not-ready"/>')[0];
......@@ -545,11 +622,13 @@ QUnit.test("field_ready", function(assert) {
});
});
QUnit.test("make_alert - cancel", async function(assert) {
QUnit.test("make_alert - cancel", async function (assert) {
var cancel_callback = assert.async()
var _alert = form_elements.make_alert({
message: "message",
proceed_callback: () => {assert.ok(false, "this should not be called");},
proceed_callback: () => {
assert.ok(false, "this should not be called");
},
cancel_callback: cancel_callback,
});
$("body").append(_alert);
......@@ -563,7 +642,7 @@ QUnit.test("make_alert - cancel", async function(assert) {
});
QUnit.test("make_alert - proceed", async function(assert) {
QUnit.test("make_alert - proceed", async function (assert) {
var proceed_callback = assert.async();
var _alert = form_elements.make_alert({
message: "message",
......@@ -580,7 +659,7 @@ QUnit.test("make_alert - proceed", async function(assert) {
});
QUnit.test("make_alert - remember", async function(assert) {
QUnit.test("make_alert - remember", async function (assert) {
form_elements._set_alert_decision("unittests", "");
var proceed_callback = assert.async(3);
......@@ -627,13 +706,21 @@ QUnit.test("make_alert - remember", async function(assert) {
assert.equal(typeof _alert, "undefined", "alert was not created, proceed callback was called third time");
});
QUnit.test("make_select_input", function(assert) {
QUnit.test("make_select_input", function (assert) {
const config = {
name: "sex", label: "Sex", multiple: true, options: [
{"value": "f", "label": "female"},
{"value": "d", "label": "diverse"},
{"value": "m", "label": "male"},
],
name: "sex",
label: "Sex",
multiple: true,
options: [{
"value": "f",
"label": "female"
}, {
"value": "d",
"label": "diverse"
}, {
"value": "m",
"label": "male"
}, ],
}
const select = $(form_elements.make_select_input(config));
assert.equal(select.find("select").length, 1, "select input there");
......@@ -643,21 +730,24 @@ QUnit.test("make_select_input", function(assert) {
QUnit.test("select_input caching", async function (assert) {
const config = {
"name": "test-form",
"fields": [
{
type: "select",
required: true,
cached: true,
name: "sex",
label: "Sex",
options: [
{"value": "f", "label": "female"},
{"value": "d", "label": "diverse"},
{"value": "m", "label": "male"},
],
},
],
"name": "test-form",
"fields": [{
type: "select",
required: true,
cached: true,
name: "sex",
label: "Sex",
options: [{
"value": "f",
"label": "female"
}, {
"value": "d",
"label": "diverse"
}, {
"value": "m",
"label": "male"
}, ],
}, ],
}
const form_wrapper = $(form_elements.make_form(config));
await sleep(200);
......@@ -682,4 +772,4 @@ QUnit.test("select_input caching", async function (assert) {
form_elements.load_cached(cache, form[0]);
await sleep(200);
assert.equal(form_elements.get_cache_value(field[0]), "f", "value back to value from cache");
});
});
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment