Browse Source

parent block properties should not be changed, only top level ones

pull/488/head
Diana Shkolnikov 9 years ago
parent
commit
82e39fd81f
  1. 6
      middleware/normalizeParentIds.js
  2. 98
      test/unit/middleware/normalizeParentIds.js

6
middleware/normalizeParentIds.js

@ -39,10 +39,10 @@ function setup() {
*/
function normalizeParentIds(place) {
if (place && place.parent) {
if (place) {
placeTypes.forEach(function (placeType) {
if (place.parent[placeType] && place.parent[placeType].length > 0 && place.parent[placeType][0]) {
place.parent[placeType + '_id'] = [ makeNewId(placeType, place.parent[placeType + '_id']) ];
if (place[placeType] && place[placeType].length > 0 && place[placeType][0]) {
place[placeType + '_id'] = [ makeNewId(placeType, place[placeType + '_id']) ];
}
});
}

98
test/unit/middleware/normalizeParentIds.js

@ -8,30 +8,33 @@ module.exports.tests.interface = function(test, common) {
var input = {
data: [{
'parent': {
'country': ['United States'],
'country': ['United States'], // these shouldn't change
'country_id': ['85633793'],
'country_a': ['USA'],
'macroregion': ['MacroRegion Name'],
'macroregion_id': ['foobar'],
'macroregion_a': ['MacroRegion Abbreviation'],
'region': ['New York'],
'region_id': ['85688543'],
'region_a': ['NY'],
'macrocounty': ['MacroCounty Name'],
'macrocounty_id': ['~~~~~'],
'macrocounty_a': ['MacroCounty Abbreviation'],
'county': ['Kings County'],
'county_id': ['102082361'],
'county_a': [null],
'localadmin': ['Brooklyn'],
'localadmin_id': ['404521211'],
'localadmin_a': [null],
'locality': ['Some Locality'],
'locality_id': ['85977539'],
'locality_a': [null],
'neighbourhood': [],
'neighbourhood_id': []
}
'country_a': ['USA']
},
'country': ['United States'],
'country_id': ['85633793'],
'country_a': ['USA'],
'macroregion': ['MacroRegion Name'],
'macroregion_id': ['foobar'],
'macroregion_a': ['MacroRegion Abbreviation'],
'region': ['New York'],
'region_id': ['85688543'],
'region_a': ['NY'],
'macrocounty': ['MacroCounty Name'],
'macrocounty_id': ['~~~~~'],
'macrocounty_a': ['MacroCounty Abbreviation'],
'county': ['Kings County'],
'county_id': ['102082361'],
'county_a': [null],
'localadmin': ['Brooklyn'],
'localadmin_id': ['404521211'],
'localadmin_a': [null],
'locality': ['Some Locality'],
'locality_id': ['85977539'],
'locality_a': [null],
'neighbourhood': [],
'neighbourhood_id': []
}]
};
@ -39,29 +42,32 @@ module.exports.tests.interface = function(test, common) {
data: [{
'parent': {
'country': ['United States'],
'country_id': ['whosonfirst:country:85633793'],
'country_a': ['USA'],
'macroregion': ['MacroRegion Name'],
'macroregion_id': ['whosonfirst:macroregion:foobar'],
'macroregion_a': ['MacroRegion Abbreviation'],
'region': ['New York'],
'region_id': ['whosonfirst:region:85688543'],
'region_a': ['NY'],
'macrocounty': ['MacroCounty Name'],
'macrocounty_id': ['whosonfirst:macrocounty:~~~~~'],
'macrocounty_a': ['MacroCounty Abbreviation'],
'county': ['Kings County'],
'county_id': ['whosonfirst:county:102082361'],
'county_a': [null],
'localadmin': ['Brooklyn'],
'localadmin_id': ['whosonfirst:localadmin:404521211'],
'localadmin_a': [null],
'locality': ['Some Locality'],
'locality_id': ['whosonfirst:locality:85977539'],
'locality_a': [null],
'neighbourhood': [],
'neighbourhood_id': []
}
'country_id': ['85633793'],
'country_a': ['USA']
},
'country': ['United States'],
'country_id': ['whosonfirst:country:85633793'],
'country_a': ['USA'],
'macroregion': ['MacroRegion Name'],
'macroregion_id': ['whosonfirst:macroregion:foobar'],
'macroregion_a': ['MacroRegion Abbreviation'],
'region': ['New York'],
'region_id': ['whosonfirst:region:85688543'],
'region_a': ['NY'],
'macrocounty': ['MacroCounty Name'],
'macrocounty_id': ['whosonfirst:macrocounty:~~~~~'],
'macrocounty_a': ['MacroCounty Abbreviation'],
'county': ['Kings County'],
'county_id': ['whosonfirst:county:102082361'],
'county_a': [null],
'localadmin': ['Brooklyn'],
'localadmin_id': ['whosonfirst:localadmin:404521211'],
'localadmin_a': [null],
'locality': ['Some Locality'],
'locality_id': ['whosonfirst:locality:85977539'],
'locality_a': [null],
'neighbourhood': [],
'neighbourhood_id': []
}]
};

Loading…
Cancel
Save