diff options
Diffstat (limited to 'desktop/modules/user/test_user.js')
| -rw-r--r-- | desktop/modules/user/test_user.js | 22 |
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"); |
