get-translation
Version:
Effective translation workflow
83 lines (73 loc) • 3.29 kB
JavaScript
/**
* Module dependencies
*/
var fixtures = require('./fixtures/json')
, Log = require('../libraries/log').Log;
module.exports = function() {
describe('Log', function() {
describe('#_getLatestUpdates', function() {
it('should throw an error if locale string is not provided as a parameter', function() {
var log = new Log;
var fn = function() {
log._getLatestUpdates(1);
};
expect(fn).to.throw(TypeError, /first parameter must contain a locale string/);
});
it('should set the default locale if no locale is added', function() {
var fileStub = { readTranslations : sinon.spy() };
var Log = proxyquire('../libraries/log', { './file' : fileStub }).Log;
var log = new Log;
log.defaultLocale = 'en-US';
log._getLatestUpdates();
expect(fileStub.readTranslations.args[0][0]).to.equal('en-US');
});
it('should set the default locale if no locale is added', function() {
var fileStub = { readTranslations : sinon.stub().returns(fixtures.readTranslationJSON['en-US']) };
var Log = proxyquire('../libraries/log', { './file' : fileStub }).Log;
var log = new Log;
var translations = log._getLatestUpdates('en-US');
expect(translations).to.eql(fixtures.readTranslationJSON['en-US']);
});
});
describe('#outputLog', function() {
it('should use the default locale whenever a locale parameter is not provided', function() {
var logStub = { log : sinon.spy() };
var Log = proxyquire('../libraries/log', { './_log' : logStub }).Log;
var log = new Log;
log.defaultLocale = 'en-US';
log._getLatestUpdates = sinon.stub().returns([]);
log.outputLog();
log._getLatestUpdates.calledWith('en-US');
});
it('should output no translation whenever there is no translations', function() {
var arg = 'No translations';
var logStub = { log : sinon.spy() };
var Log = proxyquire('../libraries/log', { './_log' : logStub }).Log;
var log = new Log;
log._getLatestUpdates = sinon.stub().returns([]);
log.defaultLocale = 'en-US';
log.outputLog();
logStub.log.calledWithMatch(arg);
});
it('should output translation log whenever there is translations', function() {
var logStub = { log : sinon.spy() };
var Log = proxyquire('../libraries/log', { './_log' : logStub }).Log;
var log = new Log;
log._getLatestUpdates = sinon.stub().returns(fixtures.readTranslationArray['en-US']);
log.defaultLocale = 'en-US';
log.outputLog();
logStub.log.calledWithMatch('\nLatest translations in');
});
it('should output translation log of maxium length equal to ' + cf.LOG_LENGTH, function() {
var logStub = { log : sinon.spy() };
var Log = proxyquire('../libraries/log', { './_log' : logStub }).Log;
var log = new Log;
log._getLatestUpdates = sinon.stub().returns(fixtures.readTranslationArray_long['en-US']);
log.defaultLocale = 'en-US';
log.outputLog();
logStub.log.should.have.callCount(10);
expect(logStub.log.args[9][0]).to.contain('%10');
});
});
});
};