mirror of https://github.com/pelias/api.git
Stephen Hess
8 years ago
5 changed files with 176 additions and 1 deletions
@ -0,0 +1,36 @@
|
||||
const _ = require('lodash'); |
||||
|
||||
function PlaceHolder( baseUrl ){ |
||||
this.baseUrl = baseUrl; |
||||
} |
||||
|
||||
PlaceHolder.prototype.getName = function() { |
||||
return 'placeholder'; |
||||
}; |
||||
|
||||
PlaceHolder.prototype.getBaseUrl = function() { |
||||
return this.baseUrl; |
||||
}; |
||||
|
||||
PlaceHolder.prototype.getUrl = function(req) { |
||||
return `${this.baseUrl}/search`; |
||||
}; |
||||
|
||||
PlaceHolder.prototype.getParameters = function(req) { |
||||
const parameters = { |
||||
text: req.clean.text |
||||
}; |
||||
|
||||
if (_.has(req.clean, 'lang.iso6393')) { |
||||
parameters.lang = req.clean.lang.iso6393; |
||||
} |
||||
|
||||
return parameters; |
||||
}; |
||||
|
||||
PlaceHolder.prototype.getHeaders = function(req) { |
||||
return {}; |
||||
}; |
||||
|
||||
// export
|
||||
module.exports = PlaceHolder; |
@ -0,0 +1,94 @@
|
||||
module.exports.tests = {}; |
||||
|
||||
const PlaceHolder = require('../../../../service/configurations/placeholder'); |
||||
|
||||
module.exports.tests.all = (test, common) => { |
||||
test('getName should return \'placeholder\'', (t) => { |
||||
const placeholder = new PlaceHolder('base url'); |
||||
|
||||
t.equals(placeholder.getName(), 'placeholder'); |
||||
t.end(); |
||||
|
||||
}); |
||||
|
||||
test('getBaseUrl should return value passed to constructor', (t) => { |
||||
const placeholder = new PlaceHolder('base url'); |
||||
|
||||
t.equals(placeholder.getBaseUrl(), 'base url'); |
||||
t.end(); |
||||
|
||||
}); |
||||
|
||||
test('getUrl should return value passed to constructor', (t) => { |
||||
const placeholder = new PlaceHolder('base url'); |
||||
|
||||
t.equals(placeholder.getUrl('this is not an object'), 'base url/search'); |
||||
t.end(); |
||||
|
||||
}); |
||||
|
||||
test('getParameters should return object with text and lang from req', (t) => { |
||||
const placeholder = new PlaceHolder('base url'); |
||||
|
||||
const req = { |
||||
clean: { |
||||
text: 'text value', |
||||
lang: { |
||||
iso6393: 'lang value' |
||||
} |
||||
} |
||||
}; |
||||
|
||||
t.deepEquals(placeholder.getParameters(req), { text: 'text value', lang: 'lang value' }); |
||||
t.end(); |
||||
|
||||
}); |
||||
|
||||
test('getHeaders should return empty object', (t) => { |
||||
const placeholder = new PlaceHolder('base url'); |
||||
|
||||
t.deepEquals(placeholder.getHeaders('this is not an object'), {}); |
||||
t.end(); |
||||
|
||||
}); |
||||
|
||||
test('getParameters should not include lang if req.clean.lang is unavailable', (t) => { |
||||
const placeholder = new PlaceHolder('base url'); |
||||
|
||||
const req = { |
||||
clean: { |
||||
text: 'text value' |
||||
} |
||||
}; |
||||
|
||||
t.deepEquals(placeholder.getParameters(req), { text: 'text value' }); |
||||
t.end(); |
||||
|
||||
}); |
||||
|
||||
test('getParameters should not include lang if req.clean.lang.iso6393 is unavailable', (t) => { |
||||
const placeholder = new PlaceHolder('base url'); |
||||
|
||||
const req = { |
||||
clean: { |
||||
text: 'text value', |
||||
lang: {} |
||||
} |
||||
}; |
||||
|
||||
t.deepEquals(placeholder.getParameters(req), { text: 'text value' }); |
||||
t.end(); |
||||
|
||||
}); |
||||
|
||||
}; |
||||
|
||||
module.exports.all = (tape, common) => { |
||||
function test(name, testFunction) { |
||||
return tape(`SERVICE CONFIGURATION /placeholder ${name}`, testFunction); |
||||
} |
||||
|
||||
for( var testCase in module.exports.tests ){ |
||||
module.exports.tests[testCase](test, common); |
||||
} |
||||
}; |
Loading…
Reference in new issue