aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/user/test_user.js
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/modules/user/test_user.js')
-rw-r--r--desktop/modules/user/test_user.js22
1 files changed, 21 insertions, 1 deletions
diff --git a/desktop/modules/user/test_user.js b/desktop/modules/user/test_user.js
index 3ab22a1..3f1a73d 100644
--- a/desktop/modules/user/test_user.js
+++ b/desktop/modules/user/test_user.js
@@ -18,7 +18,7 @@ const assert = require("assert");
const src = fs.readFileSync(__dirname + "/User.js", "utf8")
.replace(/^\.pragma library$/m, "");
-const U = new Function(src + "\nreturn { parse, keys, locales, gitName };")();
+const U = new Function(src + "\nreturn { parse, keys, locales, gitName, places };")();
// parse: key=value lines; a value may itself hold "=".
assert.deepStrictEqual(U.parse("name=Jane Doèr\nlocation=a=b\n\n"),
@@ -44,4 +44,24 @@ assert.strictEqual(U.gitName("Ève Àlba"), "Ève À.");
assert.strictEqual(U.gitName(" Jane Doèr "), "Jane D.");
assert.strictEqual(U.gitName(""), "");
+// places: Nominatim jsonv2 results as "place, region, country", the most
+// specific settlement name first, duplicates and repeated parts dropped.
+const nominatim = JSON.stringify([
+ { name: "Roma", address: { city: "Roma", state: "Lazio", country: "Italia" } },
+ { name: "Rome", address: { town: "Rome", county: "Floyd County", state: "Georgia", country: "United States" } },
+ { name: "Roma", address: { city: "Roma", state: "Lazio", country: "Italia" } },
+ { name: "Monaco", address: { city: "Monaco", country: "Monaco" } },
+ { name: "Piazza", address: { village: "Piazza", country: "Italia" } },
+ { name: "Somewhere" },
+]);
+assert.deepStrictEqual(U.places(nominatim), [
+ "Roma, Lazio, Italia",
+ "Rome, Georgia, United States",
+ "Monaco",
+ "Piazza, Italia",
+ "Somewhere",
+]);
+assert.deepStrictEqual(U.places(""), []);
+assert.deepStrictEqual(U.places("<html>rate limited</html>"), []);
+
console.log("test_user: ok");