Files
habitica/test/helpers/content.helper.js
2015-10-03 09:00:06 -05:00

56 lines
1.7 KiB
JavaScript

require('./globals.helper');
import {readdirSync} from 'fs';
import {resolve} from 'path';
import {each} from 'lodash';
import i18n from '../../common/script/src/i18n';
require('coffee-script');
i18n.translations = require('../../website/src/i18n.js').translations;
global.STRING_ERROR_MSG = 'Error processing the string. Please see Help > Report a Bug.';
global.STRING_DOES_NOT_EXIST_MSG = /^String '.*' not found.$/;
global.expectValidTranslationString = (attribute) => {
expect(attribute).to.be.a('function');
let translatedString = attribute();
expect(translatedString).to.not.be.empty;
expect(translatedString).to.not.eql(STRING_ERROR_MSG);
expect(translatedString).to.not.match(STRING_DOES_NOT_EXIST_MSG);
};
global.runTestsInDirectory = (directory) => {
const CONTENT_TEST_PATH = './test/content/';
let directoryPath = `${CONTENT_TEST_PATH}${directory}`;
let files = readdirSync(directoryPath);
files.forEach((file) => {
let filePath = resolve(`${directoryPath}/${file}`);
require(filePath);
});
};
global.describeEachItem = (testDescription, set, cb, describeFunction) => {
// describeFunction allows you to pass in 'only' or 'skip'
// as the last argument for writing/debugging tests.
// This should only be used with the helper functions .only and .skip below
let describeBlock = describe[describeFunction] || describe;
describeBlock(testDescription, () => {
each(set, (item, key) => {
describe(key, () => {
cb(item, key);
});
});
});
}
describeEachItem.only = (des, set, cb) => {
describeEachItem(des, set, cb, 'only');
}
describeEachItem.skip = (des, set, cb) => {
describeEachItem(des, set, cb, 'skip');
}