express-middleware
Advanced tools
Comparing version 1.3.1 to 1.3.2
{ | ||
"name": "express-middleware", | ||
"version": "1.3.1", | ||
"version": "1.3.2", | ||
"description": "Set of middlewares for Chauffeur-Privé", | ||
@@ -37,3 +37,3 @@ "keywords": [ | ||
"start": "npm test", | ||
"coverage": "istanbul cover _mocha --report lcovonly -- --recursive -R spec", | ||
"coverage": "istanbul cover _mocha -- --recursive -R spec", | ||
"coverage-html": "istanbul cover _mocha -- --recursive -R spec", | ||
@@ -40,0 +40,0 @@ "mocha": "mocha --recursive" |
@@ -15,4 +15,13 @@ 'use strict'; | ||
function findExactLanguageMatch(languages, parsedLanguages) { | ||
const matchingLanguage = _.find(parsedLanguages, | ||
lang => _.includes(languages, languageObjectToString(lang))); | ||
let matchingLanguage; | ||
_.find(parsedLanguages, | ||
lang => { | ||
const languageString = languageObjectToString(lang); | ||
if (!lang.region) { | ||
matchingLanguage = findPartialLanguageMatch(languages, [lang]); | ||
} else if (_.includes(languages, languageString)) { | ||
matchingLanguage = languageString; | ||
} | ||
return matchingLanguage; | ||
}); | ||
return matchingLanguage ? languageObjectToString(matchingLanguage) : null; | ||
@@ -24,3 +33,2 @@ } | ||
const code = language.split('-')[0]; | ||
if (languagesResult[code]) return languagesResult; | ||
languagesResult[code] = language; | ||
@@ -35,3 +43,3 @@ return languagesResult; | ||
}); | ||
return matchingLanguage ? languageObjectToString(matchingLanguage) : null; | ||
return matchingLanguage || null; | ||
} | ||
@@ -38,0 +46,0 @@ |
@@ -34,2 +34,14 @@ 'use strict'; | ||
it('should take the correct language even if the region is not present', function test(done) { | ||
const req = { get: () => 'fr;q=1,ca-CA;q=0.9,en-US;q=0.8' }; | ||
const middleware = language({ languages }); | ||
expect(middleware).to.be.instanceof(Function); | ||
middleware(req, null, () => { | ||
expect(req.language).to.equal(languages[1]); | ||
done(); | ||
}); | ||
}); | ||
it('should take the correct language even if the region is not the same as language', function test(done) { | ||
@@ -36,0 +48,0 @@ const req = { get: () => 'es-ES;q=1,ca-CA;q=0.9,en-FR;q=0.8' }; |
34384
736