mirror of https://github.com/pelias/api.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
176 lines
4.0 KiB
176 lines
4.0 KiB
module.exports.tests = {}; |
|
|
|
const Language = require('../../../../service/configurations/Language'); |
|
|
|
module.exports.tests.all = (test, common) => { |
|
test('getName should return \'language\'', (t) => { |
|
const configBlob = { |
|
url: 'http://localhost:1234', |
|
timeout: 17, |
|
retries: 19 |
|
}; |
|
|
|
const language = new Language(configBlob); |
|
|
|
t.equals(language.getName(), 'language'); |
|
t.equals(language.getBaseUrl(), 'http://localhost:1234/'); |
|
t.equals(language.getTimeout(), 17); |
|
t.equals(language.getRetries(), 19); |
|
t.end(); |
|
|
|
}); |
|
|
|
test('getUrl should return value passed to constructor', (t) => { |
|
const configBlob = { |
|
url: 'http://localhost:1234', |
|
timeout: 17, |
|
retries: 19 |
|
}; |
|
|
|
const language = new Language(configBlob); |
|
|
|
t.equals(language.getUrl(), 'http://localhost:1234/parser/findbyid'); |
|
t.end(); |
|
|
|
}); |
|
|
|
test('getParameters should return object with all deduped ids extracted from res', (t) => { |
|
const configBlob = { |
|
url: 'http://localhost:1234', |
|
timeout: 17, |
|
retries: 19 |
|
}; |
|
|
|
const language = new Language(configBlob); |
|
|
|
const res = { |
|
data: [ |
|
{ |
|
parent: { |
|
layer1_name: 'layer1 name', |
|
layer1_id: [1], |
|
layer2_name: 'layer2 name', |
|
layer2_id: [2] |
|
} |
|
}, |
|
{ |
|
// empty parent |
|
parent: {} |
|
}, |
|
{ |
|
// no parent |
|
}, |
|
{ |
|
parent: { |
|
layer3_name: 'layer3 name', |
|
layer3_id: [3], |
|
layer4_name: 'layer4 name', |
|
// doesn't end with '_id', will be ignored |
|
layer4id: [4] |
|
} |
|
}, |
|
{ |
|
parent: { |
|
// this is a duplicate id |
|
layer1_name: 'layer1 name', |
|
layer1_id: [1], |
|
// two ids, both should be added |
|
layer5_name: 'layer5 name', |
|
layer5_id: [5, 6] |
|
} |
|
} |
|
] |
|
}; |
|
|
|
t.deepEquals(language.getParameters(undefined, res), { ids: '1,2,3,5,6' }); |
|
t.end(); |
|
|
|
}); |
|
|
|
test('getParameters should return empty ids array when res is undefined', (t) => { |
|
const configBlob = { |
|
url: 'http://localhost:1234', |
|
timeout: 17, |
|
retries: 19 |
|
}; |
|
|
|
const language = new Language(configBlob); |
|
|
|
t.deepEquals(language.getParameters(undefined, undefined), { ids: '' }); |
|
t.end(); |
|
|
|
}); |
|
|
|
test('getParameters should return empty ids array when res.data is undefined', (t) => { |
|
const configBlob = { |
|
url: 'http://localhost:1234', |
|
timeout: 17, |
|
retries: 19 |
|
}; |
|
|
|
const res = { }; |
|
|
|
const language = new Language(configBlob); |
|
|
|
t.deepEquals(language.getParameters(undefined, res), { ids: '' }); |
|
t.end(); |
|
|
|
}); |
|
|
|
|
|
test('getParameters should return lang when req.clean.lang.iso6393 is defined', (t) => { |
|
const configBlob = { |
|
url: 'http://localhost:1234', |
|
timeout: 17, |
|
retries: 19 |
|
}; |
|
|
|
const req = {clean: {lang: {iso6393: 'eng' }}}; |
|
const res = { }; |
|
|
|
const language = new Language(configBlob); |
|
|
|
t.deepEquals(language.getParameters(req, res), { ids: '', lang: 'eng' }); |
|
t.end(); |
|
|
|
}); |
|
|
|
test('getHeaders should return empty object', (t) => { |
|
const configBlob = { |
|
url: 'base url', |
|
timeout: 17, |
|
retries: 19 |
|
}; |
|
|
|
const language = new Language(configBlob); |
|
|
|
t.deepEquals(language.getHeaders(), {}); |
|
t.end(); |
|
|
|
}); |
|
|
|
test('baseUrl ending in / should not have double /\'s return by getUrl', (t) => { |
|
const configBlob = { |
|
url: 'http://localhost:1234/', |
|
timeout: 17, |
|
retries: 19 |
|
}; |
|
|
|
const language = new Language(configBlob); |
|
|
|
t.deepEquals(language.getUrl(), 'http://localhost:1234/parser/findbyid'); |
|
t.end(); |
|
|
|
}); |
|
|
|
}; |
|
|
|
module.exports.all = (tape, common) => { |
|
function test(name, testFunction) { |
|
return tape(`SERVICE CONFIGURATION /Language ${name}`, testFunction); |
|
} |
|
|
|
for( var testCase in module.exports.tests ){ |
|
module.exports.tests[testCase](test, common); |
|
} |
|
};
|
|
|