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