UNPKG

get-translation

Version:
83 lines (73 loc) 3.29 kB
/** * 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'); }); }); }); };