Files
cloudron-box/src/test/translation-test.js
Girish Ramakrishnan 01ce251596 constness
2022-04-14 18:03:43 -05:00

61 lines
2.0 KiB
JavaScript

/* jslint node:true */
/* global it:false */
/* global describe:false */
'use strict';
const expect = require('expect.js'),
translation = require('../translation.js');
describe('translation', function () {
describe('translate', function () {
it('nonexisting token', function () {
const out = translation.translate('Foo {{ bar }}', {}, {});
expect(out).to.contain('{{ bar }}');
});
it('existing token', function () {
const out = translation.translate('Foo {{ bar }}', { bar: 'here' }, {});
expect(out).to.contain('here');
});
it('existing token as fallback', function () {
const out = translation.translate('Foo {{ bar }}', {}, { bar: 'here' });
expect(out).to.contain('here');
});
it('existing token deep', function () {
const out = translation.translate('Foo {{ bar.baz.foo }}', { bar: { baz: { foo: 'here' }}}, {});
expect(out).to.contain('here');
});
it('existing token deep as fallback', function () {
const out = translation.translate('Foo {{ bar.baz.foo }}', { bar: '' }, { bar: { baz: { foo: 'here' }}});
expect(out).to.contain('here');
});
it('with whitespace tokens', function () {
const obj = {
something: {
missing: {
there: '1'
}
},
here: '2',
there: '3',
foo: '4',
bar: '5'
};
const input = 'Hello {{ something.missing.there}} and some more {{here}} and {{ there }} with odd spacing {{foo }} lots of{{ bar }}';
const out = translation.translate(input, obj, {});
expect(out).to.contain('1');
expect(out).to.contain('2');
expect(out).to.contain('3');
expect(out).to.contain('4');
expect(out).to.contain('5');
});
});
});