UNPKG

translator

Version:

[ABANDONED] Translator for node and also for browser

61 lines (49 loc) 1.92 kB
// 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);