webmaker-i18n
Version:
Webmaker Localization Components for node.js and the browser
71 lines (64 loc) • 2.24 kB
JavaScript
var i18n = require("../");
var should = require('should');
var _ = require("lodash"),
path = require("path"),
translationPath = path.join(__dirname, '../example/locale'),
middlewareOptions = {
default_lang: 'en-US',
supported_languages: ['en-US', 'en-CA'],
translation_directory: translationPath,
mappings: {
'en': 'en-US'
}
},
localOptions = {};
describe("with good invocation of the middleware", function (done) {
it("should not throw when passed default options data", function () {
should(function () {
_.merge(localOptions, middlewareOptions);
i18n.middleware(localOptions);
}).not.throw ();
});
it("should not throw when passed default options without default_lang", function () {
should(function () {
_.merge(localOptions, middlewareOptions);
delete localOptions.default_lang;
i18n.middleware(localOptions);
}).not.throw ();
});
it("should not throw when passed default options without mappings", function () {
should(function () {
_.merge(localOptions, middlewareOptions);
delete localOptions.mappings;
i18n.middleware(localOptions);
}).not.throw ();
});
it("should not throw when passed default options with 'en-CA' as default_lang", function () {
should(function () {
_.merge(localOptions, middlewareOptions);
localOptions.default_lang = 'en-CA';
i18n.middleware(localOptions);
}).not.throw ();
});
it("should not throw when passed default options with '*' enabled in supported_languages", function () {
should(function () {
_.merge(localOptions, middlewareOptions);
localOptions.supported_languages = ['*'];
i18n.middleware(localOptions);
}).not.throw ();
});
it("should contain the right locale for the mapped language", function () {
should(function () {
i18n.middleware({
default_lang: 'en-US',
supported_languages: ['en-US', 'en-CA'],
translation_directory: translationPath,
mappings: {
'id-ID': 'en-CA'
}
});
}).not.throw ();
i18n.getLanguages().should.eql([ 'en-US', 'en-CA', 'id-ID' ]);
i18n.getStrings('id-ID')['localized-string'].should.eql('localised (en-CA)');
});
});