Fix some file fallback retrieval for some langs. Added tests

This commit is contained in:
vjrj 2018-02-26 20:11:41 +01:00
parent 1df41f1e5a
commit 1cf2a6883a
3 changed files with 49 additions and 2 deletions

View file

@ -3,13 +3,14 @@ import fs from 'fs';
const as = f => `assets/app/${f}`;
export const getFallbackLang = (lang) => {
if (lang === 'ast' || lang === 'gl' || lang === 'eu' || lang === 'ca') {
if (lang === 'ast' || lang === 'gl' || lang === 'eu' || lang === 'ca' ||
(lang && lang.match(/es_.*/)) ||
(lang && lang.match(/es-.*/))) {
return 'es';
}
return 'en';
};
export const getFileNameOfLang = (dir, fileName, ext, lang) => {
const base = `${dir}/${fileName}`;
const fallback = getFallbackLang(lang);

40
test/file.test.js Normal file
View file

@ -0,0 +1,40 @@
/* eslint-env mocha */
/* eslint-disable func-names, prefer-arrow-callback */
/* eslint-disable import/no-absolute-path */
import { chai } from 'meteor/practicalmeteor:chai';
import { getFileNameOfLang } from '/imports/api/Utility/server/files.js';
describe('get file of page', () => {
it('lang es retrieve es', async () => {
chai.expect('pages/about-es.md').to.deep.equal(getFileNameOfLang('pages', 'about', 'md', 'es'));
});
it('lang en retrieve en', async () => {
chai.expect('pages/about-en.md').to.deep.equal(getFileNameOfLang('pages', 'about', 'md', 'en'));
});
it('lang gl retrieve es', async () => {
chai.expect('pages/about-es.md').to.deep.equal(getFileNameOfLang('pages', 'about', 'md', 'gl'));
});
it('lang ast retrieve es', async () => {
chai.expect('pages/about-es.md').to.deep.equal(getFileNameOfLang('pages', 'about', 'md', 'gl'));
});
it('lang eu retrieve es', async () => {
chai.expect('pages/about-es.md').to.deep.equal(getFileNameOfLang('pages', 'about', 'md', 'eu'));
});
it('lang ca retrieve es', async () => {
chai.expect('pages/about-es.md').to.deep.equal(getFileNameOfLang('pages', 'about', 'md', 'ca'));
});
it('lang es-PE retrieve es', async () => {
chai.expect('pages/about-es.md').to.deep.equal(getFileNameOfLang('pages', 'about', 'md', 'es-PE'));
});
it('lang es_PE retrieve es', async () => {
chai.expect('pages/about-es.md').to.deep.equal(getFileNameOfLang('pages', 'about', 'md', 'es_PE'));
});
});

View file

@ -10,6 +10,7 @@ const setting = {
name: 'site-test',
value: 'Some value',
description: 'Some description',
isPublic: true,
type: 'string'
};
@ -19,6 +20,11 @@ describe('site settings store', () => {
});
it('should insert settings', () => {
// Remove previous test register
const alreadyInserted = SiteSettings.findOne({ name: 'site-test' });
if (alreadyInserted) {
SiteSettings.remove(alreadyInserted._id);
}
const id = SiteSettings.insert(setting);
SiteSettings.getSchema(setting.type).validate(setting);