translator
Version:
[ABANDONED] Translator for node and also for browser
61 lines (49 loc) • 1.92 kB
JavaScript
// Generated by CoffeeScript 1.6.3
(function() {
var Cache, FileStorage, Translator, cache, dir, expect, fs, path, translator;
expect = require('chai').expect;
path = require('path');
fs = require('fs');
Translator = require('../../../lib/Translator');
FileStorage = require('cache-storage/Storage/FileStorage');
Cache = require('cache-storage');
dir = path.normalize(__dirname + '/../../data');
cache = path.normalize(__dirname + '/../../cache');
translator = null;
describe('Translator.cache', function() {
beforeEach(function() {
translator = new Translator(dir);
translator.language = 'en';
return translator.setCacheStorage(new FileStorage(cache));
});
afterEach(function() {
var cachePath, dicPath;
translator = null;
cachePath = cache + '/__translator.json';
dicPath = dir + '/web/pages/homepage/en.cached.json';
if (fs.existsSync(cachePath)) {
fs.unlinkSync(cachePath);
}
return fs.writeFileSync(dicPath, '{"variable": "1"}');
});
return describe('#translate()', function() {
it('should load translation from cache', function() {
var t;
translator.translate('web.pages.homepage.promo.title');
t = translator.cache.load('en:web/pages/homepage/promo');
expect(t).to.be.an('object');
return expect(t).to.include.keys('title');
});
return it('should invalidate cache for dictionary after it is changed', function() {
var data, dictionary;
dictionary = dir + '/web/pages/homepage/en.simple.json';
data = fs.readFileSync(dictionary, {
encoding: 'utf-8'
});
translator.translate('web.pages.homepage.simple.title');
fs.writeFileSync(dictionary, data);
return expect(translator.cache.load('en:web/pages/homepage/simple')).to.be["null"];
});
});
});
}).call(this);