mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
92 lines
2.1 KiB
JavaScript
92 lines
2.1 KiB
JavaScript
import {
|
|
generateRes,
|
|
generateReq,
|
|
generateNext,
|
|
} from '../../../../helpers/api-unit.helper';
|
|
import getUserLanguage from '../../../../../website/src/middlewares/api-v3/getUserLanguage';
|
|
import Q from 'q';
|
|
import { model as User } from '../../../../../website/src/models/user';
|
|
import { translations } from '../../../../../website/src/libs/api-v3/i18n';
|
|
import accepts from 'accepts';
|
|
|
|
describe('getUserLanguage', () => {
|
|
let res, req, next;
|
|
|
|
beforeEach(() => {
|
|
res = generateRes();
|
|
req = generateReq();
|
|
next = generateNext();
|
|
|
|
sandbox.stub(User, 'findOne').returns({
|
|
exec() {
|
|
return Q.resolve({
|
|
preferences: {
|
|
language: 'it',
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
describe('query parameter', () => {
|
|
it('uses the language in the query parameter if avalaible', () => {
|
|
req.query = {
|
|
lang: 'es',
|
|
};
|
|
|
|
getUserLanguage(req, res, next);
|
|
expect(req.language).to.equal('es');
|
|
});
|
|
|
|
it('falls back to english if the query parameter language does not exists', () => {
|
|
req.query = {
|
|
lang: 'bla',
|
|
};
|
|
|
|
getUserLanguage(req, res, next);
|
|
expect(req.language).to.equal('en');
|
|
});
|
|
});
|
|
|
|
describe('authorized request', () => {
|
|
it('uses the user preferred language if avalaible', () => {
|
|
req.locals = {
|
|
user: {
|
|
preferences: {
|
|
language: 'it',
|
|
},
|
|
},
|
|
};
|
|
|
|
getUserLanguage(req, res, next);
|
|
expect(req.language).to.equal('it');
|
|
});
|
|
|
|
xit('falls back to english if the user preferred language is not avalaible', () => {
|
|
req.locals = {
|
|
user: {
|
|
preferences: {
|
|
language: 'bla',
|
|
},
|
|
},
|
|
};
|
|
|
|
getUserLanguage(req, res, next);
|
|
expect(req.language).to.equal('en');
|
|
});
|
|
});
|
|
|
|
describe('request with session', () => {
|
|
it('uses the user preferred language if avalaible', (done) => {
|
|
req.session = {
|
|
userId: 123
|
|
};
|
|
|
|
getUserLanguage(req, res, () => {
|
|
expect(req.language).to.equal('it');
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|