mirror of https://github.com/pelias/api.git
Stephen Hess
8 years ago
7 changed files with 113 additions and 3 deletions
@ -0,0 +1,25 @@ |
|||||||
|
const _ = require('lodash'); |
||||||
|
|
||||||
|
/** |
||||||
|
with the release of coarse reverse as a separate thing and ES reverse only |
||||||
|
handling venues, addresses, and streets, geonames make no sense in the reverse context |
||||||
|
**/ |
||||||
|
|
||||||
|
function sanitize( raw, clean, opts ) { |
||||||
|
// error & warning messages
|
||||||
|
const messages = { errors: [], warnings: [] }; |
||||||
|
|
||||||
|
if (_.isEqual(clean.sources, ['geonames']) || _.isEqual(clean.sources, ['gn'])) { |
||||||
|
messages.errors.push('/reverse does not support geonames'); |
||||||
|
|
||||||
|
} else if (_.includes(clean.sources, 'geonames') || _.includes(clean.sources, 'gn')) { |
||||||
|
clean.sources = _.without(clean.sources, 'geonames', 'gn'); |
||||||
|
messages.warnings.push('/reverse does not support geonames'); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
return messages; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
module.exports = sanitize; |
@ -0,0 +1,82 @@ |
|||||||
|
const geonames_deprecation = require('../../../sanitizer/_geonames_deprecation'); |
||||||
|
|
||||||
|
module.exports.tests = {}; |
||||||
|
|
||||||
|
module.exports.tests.no_warnings_or_errors_conditions = (test, common) => { |
||||||
|
test('undefined sources should add neither warnings nor errors', (t) => { |
||||||
|
const clean = {}; |
||||||
|
|
||||||
|
const messages = geonames_deprecation(undefined, clean); |
||||||
|
|
||||||
|
t.deepEquals(clean, {}); |
||||||
|
t.deepEquals(messages, { errors: [], warnings: [] }); |
||||||
|
t.end(); |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
test('geonames/gn not in sources should add neither warnings nor errors', (t) => { |
||||||
|
const clean = { |
||||||
|
sources: ['source 1', 'source 2'], |
||||||
|
}; |
||||||
|
|
||||||
|
const messages = geonames_deprecation(undefined, clean); |
||||||
|
|
||||||
|
t.deepEquals(clean.sources, ['source 1', 'source 2']); |
||||||
|
t.deepEquals(messages, { errors: [], warnings: [] }); |
||||||
|
t.end(); |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
module.exports.tests.error_conditions = (test, common) => { |
||||||
|
test('only geonames in sources should not modify clean.sources and add error message', (t) => { |
||||||
|
['gn', 'geonames'].forEach((sources) => { |
||||||
|
const clean = { |
||||||
|
sources: [sources] |
||||||
|
}; |
||||||
|
|
||||||
|
const messages = geonames_deprecation(undefined, clean); |
||||||
|
|
||||||
|
t.deepEquals(clean.sources, [sources]); |
||||||
|
t.deepEquals(messages.errors, ['/reverse does not support geonames']); |
||||||
|
t.deepEquals(messages.warnings, []); |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
t.end(); |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
module.exports.tests.warning_conditions = (test, common) => { |
||||||
|
test('only geonames in sources should not modify clean.sources and add error message', (t) => { |
||||||
|
['gn', 'geonames'].forEach((sources) => { |
||||||
|
const clean = { |
||||||
|
sources: ['another source', sources, 'yet another source'] |
||||||
|
}; |
||||||
|
|
||||||
|
const messages = geonames_deprecation(undefined, clean); |
||||||
|
|
||||||
|
t.deepEquals(clean.sources, ['another source', 'yet another source']); |
||||||
|
t.deepEquals(messages.errors, []); |
||||||
|
t.deepEquals(messages.warnings, ['/reverse does not support geonames']); |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
t.end(); |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
module.exports.all = (tape, common) => { |
||||||
|
function test(name, testFunction) { |
||||||
|
return tape(`SANTIZE _geonames_deprecation ${name}`, testFunction); |
||||||
|
} |
||||||
|
|
||||||
|
for( var testCase in module.exports.tests ){ |
||||||
|
module.exports.tests[testCase](test, common); |
||||||
|
} |
||||||
|
}; |
Loading…
Reference in new issue