|
|
|
const sanitizer = 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 = sanitizer.sanitize(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 = sanitizer.sanitize(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 = sanitizer.sanitize(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 = sanitizer.sanitize(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(`SANITIZE _geonames_deprecation ${name}`, testFunction);
|
|
|
|
}
|
|
|
|
|
|
|
|
for( var testCase in module.exports.tests ){
|
|
|
|
module.exports.tests[testCase](test, common);
|
|
|
|
}
|
|
|
|
};
|