Browse Source

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

pull/488/head
Diana Shkolnikov 9 years ago
parent
commit
10cd693e02
  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) { function normalizeParentIds(place) {
if (place && place.parent) { if (place) {
placeTypes.forEach(function (placeType) { placeTypes.forEach(function (placeType) {
if (place.parent[placeType] && place.parent[placeType].length > 0 && place.parent[placeType][0]) { if (place[placeType] && place[placeType].length > 0 && place[placeType][0]) {
place.parent[placeType + '_id'] = [ makeNewId(placeType, place.parent[placeType + '_id']) ]; 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 = { var input = {
data: [{ data: [{
'parent': { 'parent': {
'country': ['United States'], 'country': ['United States'], // these shouldn't change
'country_id': ['85633793'], 'country_id': ['85633793'],
'country_a': ['USA'], 'country_a': ['USA']
'macroregion': ['MacroRegion Name'], },
'macroregion_id': ['foobar'], 'country': ['United States'],
'macroregion_a': ['MacroRegion Abbreviation'], 'country_id': ['85633793'],
'region': ['New York'], 'country_a': ['USA'],
'region_id': ['85688543'], 'macroregion': ['MacroRegion Name'],
'region_a': ['NY'], 'macroregion_id': ['foobar'],
'macrocounty': ['MacroCounty Name'], 'macroregion_a': ['MacroRegion Abbreviation'],
'macrocounty_id': ['~~~~~'], 'region': ['New York'],
'macrocounty_a': ['MacroCounty Abbreviation'], 'region_id': ['85688543'],
'county': ['Kings County'], 'region_a': ['NY'],
'county_id': ['102082361'], 'macrocounty': ['MacroCounty Name'],
'county_a': [null], 'macrocounty_id': ['~~~~~'],
'localadmin': ['Brooklyn'], 'macrocounty_a': ['MacroCounty Abbreviation'],
'localadmin_id': ['404521211'], 'county': ['Kings County'],
'localadmin_a': [null], 'county_id': ['102082361'],
'locality': ['Some Locality'], 'county_a': [null],
'locality_id': ['85977539'], 'localadmin': ['Brooklyn'],
'locality_a': [null], 'localadmin_id': ['404521211'],
'neighbourhood': [], 'localadmin_a': [null],
'neighbourhood_id': [] 'locality': ['Some Locality'],
} 'locality_id': ['85977539'],
'locality_a': [null],
'neighbourhood': [],
'neighbourhood_id': []
}] }]
}; };
@ -39,29 +42,32 @@ module.exports.tests.interface = function(test, common) {
data: [{ data: [{
'parent': { 'parent': {
'country': ['United States'], 'country': ['United States'],
'country_id': ['whosonfirst:country:85633793'], 'country_id': ['85633793'],
'country_a': ['USA'], 'country_a': ['USA']
'macroregion': ['MacroRegion Name'], },
'macroregion_id': ['whosonfirst:macroregion:foobar'], 'country': ['United States'],
'macroregion_a': ['MacroRegion Abbreviation'], 'country_id': ['whosonfirst:country:85633793'],
'region': ['New York'], 'country_a': ['USA'],
'region_id': ['whosonfirst:region:85688543'], 'macroregion': ['MacroRegion Name'],
'region_a': ['NY'], 'macroregion_id': ['whosonfirst:macroregion:foobar'],
'macrocounty': ['MacroCounty Name'], 'macroregion_a': ['MacroRegion Abbreviation'],
'macrocounty_id': ['whosonfirst:macrocounty:~~~~~'], 'region': ['New York'],
'macrocounty_a': ['MacroCounty Abbreviation'], 'region_id': ['whosonfirst:region:85688543'],
'county': ['Kings County'], 'region_a': ['NY'],
'county_id': ['whosonfirst:county:102082361'], 'macrocounty': ['MacroCounty Name'],
'county_a': [null], 'macrocounty_id': ['whosonfirst:macrocounty:~~~~~'],
'localadmin': ['Brooklyn'], 'macrocounty_a': ['MacroCounty Abbreviation'],
'localadmin_id': ['whosonfirst:localadmin:404521211'], 'county': ['Kings County'],
'localadmin_a': [null], 'county_id': ['whosonfirst:county:102082361'],
'locality': ['Some Locality'], 'county_a': [null],
'locality_id': ['whosonfirst:locality:85977539'], 'localadmin': ['Brooklyn'],
'locality_a': [null], 'localadmin_id': ['whosonfirst:localadmin:404521211'],
'neighbourhood': [], 'localadmin_a': [null],
'neighbourhood_id': [] 'locality': ['Some Locality'],
} 'locality_id': ['whosonfirst:locality:85977539'],
'locality_a': [null],
'neighbourhood': [],
'neighbourhood_id': []
}] }]
}; };

Loading…
Cancel
Save