From 88a3d33f84559303b9eeae95fee47ddc208c8b7b Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Thu, 2 Dec 2021 13:58:33 +0100
Subject: [PATCH] add tests for autocomletion

---
 src/core/js/edit_mode.js                    |  6 ++---
 test/core/js/modules/ext_autocomplete.js.js | 26 +++++++++++++++++++--
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/src/core/js/edit_mode.js b/src/core/js/edit_mode.js
index 284aaef6..87e588aa 100644
--- a/src/core/js/edit_mode.js
+++ b/src/core/js/edit_mode.js
@@ -1804,9 +1804,9 @@ var edit_mode = new function () {
      *     which can be referenced by the property.
      */
     this.retrieve_datatype_list = async function (datatype) {
-        var find_entity = ["FILE", "REFERENCE"].includes(datatype) ? "" : datatype;
-        var entities = datatype !== "FILE" ? await edit_mode.query(`FIND Record "${find_entity}"`) : [];
-        var files = await edit_mode.query(`FIND File "${find_entity}"`);
+        var find_entity = ["FILE", "REFERENCE"].includes(datatype) ? "" : `"${datatype}"`;
+        var entities = datatype !== "FILE" ? await edit_mode.query(`FIND Record ${find_entity}`) : [];
+        var files = await edit_mode.query(`FIND File ${find_entity}`);
 
         var options = edit_mode
             ._create_reference_options(entities)
diff --git a/test/core/js/modules/ext_autocomplete.js.js b/test/core/js/modules/ext_autocomplete.js.js
index e8776f94..96cab766 100644
--- a/test/core/js/modules/ext_autocomplete.js.js
+++ b/test/core/js/modules/ext_autocomplete.js.js
@@ -25,7 +25,7 @@
 QUnit.module("ext_autocomplete.js", {
     before: function (assert){
         ext_autocomplete.retrieve_names = async function () {
-            return ['IceCore', 'Bag', 'IceSample', 'IceCream', 'Palette'];
+            return ['IceCore', 'Bag', 'IceSample', 'IceCream', 'Palette', 'Ice Core'];
         }
         ext_autocomplete.init();
 
@@ -60,12 +60,34 @@ QUnit.test("search", async function(assert) {
         };
     };
     await ext_autocomplete.search("Ice", 
-        gcallback( ['IceCore', 'IceSample', 'IceCream'])
+        gcallback( ['IceCore', 'IceSample', 'IceCream', 'Ice Core'])
     );
 
     await ext_autocomplete.search("Core", gcallback([]));
 });
 
+QUnit.test("searchPost", async function(assert) {
+  const resultsFromServer = ["Ice Core", "IceCore"];
+  const origJQElement = [{
+    selectionEnd: 8,
+    value: "FIND Ice WHERE",
+  }];
+
+  const expected = [
+      {
+        "html": "Ice Core",
+        "text": "FIND \"Ice Core\" WHERE"
+      },
+      {
+        "html": "IceCore",
+        "text": "FIND IceCore WHERE"
+      }
+  ];
+
+  const result = ext_autocomplete.searchPost(resultsFromServer, origJQElement);
+  assert.propEqual(result, expected);
+});
+
 QUnit.test("class", function(assert) {
     assert.ok(ext_autocomplete.switch_on_completion , "toggle available");
     assert.ok(ext_autocomplete.switch_on_completion() , "toggle runs");
-- 
GitLab