I have an AngularJs application where I use angular translators and I want to test the functionality.
I have an i18n module that looks like this:
angular.module('i18n', ['pascalprecht.translate'])
.config(['$translateProvider', function($translateProvider) {
'use strict';
$translateProvider.useStaticFilesLoader({
prefix: '/src/resources/languages/',
suffix: '.lang.json'
});
$translateProvider.preferredLanguage('sv');
}]);
I also have a service in this module where I use $ translate.use () to get and set the current language.
I am having trouble trying to verify this. My test file looks like this:
beforeEach(module('i18n'));
it('test', inject(function ($injector, $translate) {
var i18nService = $injector.get('i18nService');
console.log('$translate.use(): ', $translate.use());
console.log('before set: ', i18nService.getLanguage());
i18nService.setLanguage('en');
console.log('after set: ', i18nService.getLanguage());
}));
and my conclusion from this:
$translate.use(): undefined
before set: undefined
after set: undefined
If i remove
$translateProvider.useStaticFilesLoader({
prefix: '/src/resources/languages/',
suffix: '.lang.json'
});
from my module, exit
$translate.use(): sv
before set: sv
after set: en
I tried using $ httpBackend, as in these questions:
How to check controllers using Angular Translate initialized in App Config?
How to do unit test with angular translation
but it didn’t work. I am not getting any unexpected request errors, for example in these issues.
Can someone help me with this?
Thank!