From cb369ca3d1d9bc6d9ee302b198a21d3f51bb5b6c Mon Sep 17 00:00:00 2001 From: missinglink Date: Thu, 4 Feb 2021 23:08:32 +1300 Subject: [PATCH] feat(default_region): add region_a to label where available --- labelSchema.js | 8 ++++++++ test/labelGenerator_default.js | 25 +++++++++++++++++-------- test/labelSchema.js | 2 +- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/labelSchema.js b/labelSchema.js index 58a3b05..7e94a82 100644 --- a/labelSchema.js +++ b/labelSchema.js @@ -46,6 +46,13 @@ function getRegionalValue(record) { } +// return region_a unless record is a region itself +function getRegionalAbbreviation(record) { + if ('region' !== record.layer && !_.isEmpty(record.region_a)) { + return _.first(record.region_a); + } +} + // this function generates the last field of the labels for US records // 1. use dependency name if layer is dependency, eg - Puerto Rico // 2. use country name if layer is country, eg - United States @@ -150,6 +157,7 @@ module.exports = { 'default': { 'valueFunctions': { 'local': getFirstProperty(['locality', 'localadmin']), + 'regional': getRegionalAbbreviation, 'country': getFirstProperty(['dependency', 'country']) } }, diff --git a/test/labelGenerator_default.js b/test/labelGenerator_default.js index f843418..8a47814 100644 --- a/test/labelGenerator_default.js +++ b/test/labelGenerator_default.js @@ -24,11 +24,12 @@ module.exports.tests.default_country = function(test, common) { 'county': ['county name'], 'macrocounty': ['macrocounty name'], 'region': ['region name'], + 'region_a': ['region abbrv'], 'macroregion': ['macroregion name'], 'country_a': ['country code'], 'country': ['country name'] }; - t.equal(generator(doc),'venue name, locality name, country name'); + t.equal(generator(doc),'venue name, locality name, region abbrv, country name'); t.end(); }); @@ -43,11 +44,12 @@ module.exports.tests.default_country = function(test, common) { 'county': ['county name'], 'macrocounty': ['macrocounty name'], 'region': ['region name'], + 'region_a': ['region abbrv'], 'macroregion': ['macroregion name'], 'country_a': ['country code'], 'country': ['country name'] }; - t.equal(generator(doc),'venue name, localadmin name, country name'); + t.equal(generator(doc),'venue name, localadmin name, region abbrv, country name'); t.end(); }); @@ -63,11 +65,12 @@ module.exports.tests.default_country = function(test, common) { 'county': ['county name'], 'macrocounty': ['macrocounty name'], 'region': ['region name'], + 'region_a': ['region abbrv'], 'macroregion': ['macroregion name'], 'country_a': ['country code'], 'country': ['country name'] }; - t.equal(generator(doc),'house number street name, locality name, country name'); + t.equal(generator(doc),'house number street name, locality name, region abbrv, country name'); t.end(); }); @@ -81,11 +84,12 @@ module.exports.tests.default_country = function(test, common) { 'county': ['county name'], 'macrocounty': ['macrocounty name'], 'region': ['region name'], + 'region_a': ['region abbrv'], 'macroregion': ['macroregion name'], 'country_a': ['country code'], 'country': ['country name'] }; - t.equal(generator(doc),'neighbourhood name, locality name, country name'); + t.equal(generator(doc),'neighbourhood name, locality name, region abbrv, country name'); t.end(); }); @@ -98,11 +102,12 @@ module.exports.tests.default_country = function(test, common) { 'county': ['county name'], 'macrocounty': ['macrocounty name'], 'region': ['region name'], + 'region_a': ['region abbrv'], 'macroregion': ['macroregion name'], 'country_a': ['country code'], 'country': ['country name'] }; - t.equal(generator(doc),'locality name, country name'); + t.equal(generator(doc),'locality name, region abbrv, country name'); t.end(); }); @@ -114,11 +119,12 @@ module.exports.tests.default_country = function(test, common) { 'county': ['county name'], 'macrocounty': ['macrocounty name'], 'region': ['region name'], + 'region_a': ['region abbrv'], 'macroregion': ['macroregion name'], 'country_a': ['country code'], 'country': ['country name'] }; - t.equal(generator(doc),'localadmin name, country name'); + t.equal(generator(doc),'localadmin name, region abbrv, country name'); t.end(); }); @@ -129,11 +135,12 @@ module.exports.tests.default_country = function(test, common) { 'county': ['county name'], 'macrocounty': ['macrocounty name'], 'region': ['region name'], + 'region_a': ['region abbrv'], 'macroregion': ['macroregion name'], 'country_a': ['country code'], 'country': ['country name'] }; - t.equal(generator(doc),'county name, country name'); + t.equal(generator(doc),'county name, region abbrv, country name'); t.end(); }); @@ -143,11 +150,12 @@ module.exports.tests.default_country = function(test, common) { 'layer': 'macrocounty', 'macrocounty': ['macrocounty name'], 'region': ['region name'], + 'region_a': ['region abbrv'], 'macroregion': ['macroregion name'], 'country_a': ['country code'], 'country': ['country name'] }; - t.equal(generator(doc),'macrocounty name, country name'); + t.equal(generator(doc),'macrocounty name, region abbrv, country name'); t.end(); }); @@ -156,6 +164,7 @@ module.exports.tests.default_country = function(test, common) { 'name': { 'default': 'region name' }, 'layer': 'region', 'region': ['region name'], + 'region_a': ['region abbrv'], 'macroregion': ['macroregion name'], 'country_a': ['country code'], 'country': ['country name'] diff --git a/test/labelSchema.js b/test/labelSchema.js index 37dcead..8b7cb2e 100644 --- a/test/labelSchema.js +++ b/test/labelSchema.js @@ -33,7 +33,7 @@ module.exports.tests.supported_countries = function(test, common) { t.equals(Object.keys(schemas.KOR.valueFunctions).length, 3); t.equals(Object.keys(schemas.FRA.valueFunctions).length, 2); t.equals(Object.keys(schemas.ITA.valueFunctions).length, 3); - t.equals(Object.keys(schemas.default.valueFunctions).length, 2); + t.equals(Object.keys(schemas.default.valueFunctions).length, 3); t.equals(Object.keys(schemas.KOR.meta).length, 1); t.equals(schemas.KOR.meta.separator, ' ');