chore: resurrect translation reporter

This restores the translation reporter that allows us to extract
translations from the library, as we test it.
This commit is contained in:
Nico Rehwaldt 2020-11-03 13:44:40 +01:00 committed by fake-join[bot]
parent 826d909d62
commit 3ff287266c
5 changed files with 36 additions and 10 deletions

View File

@ -8,6 +8,7 @@
"dev": "npm test -- --auto-watch --no-single-run",
"test": "karma start test/config/karma.unit.js",
"distro": "node tasks/build-distro.js",
"collect-translations": "COLLECT_TRANSLATIONS=1 npm test",
"test:distro": "node tasks/test-distro.js",
"preversion": "run-s distro test:distro"
},

View File

@ -2,6 +2,8 @@
var path = require('path');
var collectTranslations = process.env.COLLECT_TRANSLATIONS;
var coverage = process.env.COVERAGE;
// configures browsers to run test against
@ -19,7 +21,8 @@ var suite = coverage ? 'test/coverageBundle.js' : 'test/testBundle.js';
module.exports = function(karma) {
karma.set({
var config = {
basePath,
@ -86,5 +89,16 @@ module.exports = function(karma) {
},
devtool: 'eval-source-map'
}
});
};
if (collectTranslations) {
config.plugins = [].concat(config.plugins || [], 'karma-*', require('./translation-reporter'));
config.reporters = [].concat(config.reporters || [], 'translation-reporter');
config.envPreprocessor = [
'TRANSLATIONS'
];
}
karma.set(config);
};

View File

@ -10,7 +10,7 @@ var {
function TranslationReporter() {
process.env.TRANSLATIONS = 'enabled';
var outputFile = path.join(__dirname, '../../docs/translations.json');
var translationsFile = path.join(__dirname, '../../docs/translations.json');
var translations = [];
@ -38,10 +38,10 @@ function TranslationReporter() {
this.onRunComplete = function() {
translations = uniqueBy(function(e) {return e;}, translations);
translations = sortBy(translations, function(e) {return e;});
translations = uniqueBy(function(e) { return e; }, translations);
translations = sortBy(translations, function(e) { return e; });
fs.writeFileSync(outputFile, JSON.stringify(translations, null, 2));
fs.writeFileSync(translationsFile, JSON.stringify(translations, null, 2));
};
}

View File

@ -39,12 +39,22 @@ import {
import TestContainer from 'mocha-test-container-support';
import Modeler from '../../lib/Modeler';
import NavigatedViewer from '../../lib/NavigatedViewer';
import Viewer from '../../lib/Viewer';
var OPTIONS, BPMN_JS;
import translationModule from './TranslationCollector';
export var collectTranslations = window.__env__ && window.__env__.TRANSLATIONS === 'enabled';
// inject logging translation module into default modules
if (collectTranslations) {
[ Modeler, Viewer, NavigatedViewer ].forEach(function(constructor) {
constructor.prototype._modules.push(translationModule);
});
}
export function bootstrapBpmnJS(BpmnJS, diagram, options, locals) {
@ -105,7 +115,7 @@ export function bootstrapBpmnJS(BpmnJS, diagram, options, locals) {
}
// used to extract translations used during tests
if (window.__env__ && window.__env__.TRANSLATIONS === 'enabled') {
if (collectTranslations) {
_options.additionalModules = [].concat(
_options.additionalModules || [],
[ translationModule ]
@ -278,4 +288,4 @@ export function insertCSS(name, css) {
}
head.appendChild(style);
}
}

View File

@ -10,7 +10,8 @@ import {
import {
setBpmnJS,
clearBpmnJS
clearBpmnJS,
collectTranslations
} from 'test/TestHelper';
@ -156,7 +157,7 @@ describe('Modeler', function() {
});
describe('translate support', function() {
!collectTranslations && describe('translate support', function() {
var xml = require('../fixtures/bpmn/simple.bpmn');