diff --git a/test/core/js/modules/form_elements.js.js b/test/core/js/modules/form_elements.js.js index f72d73156f37ecd24d9bce97e5f91c1c74f39475..d8e46fd27e4087d82b97ead49c6d3eee6d447ff4 100644 --- a/test/core/js/modules/form_elements.js.js +++ b/test/core/js/modules/form_elements.js.js @@ -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