Files
bpmn-js/tasks/test-distro.mjs
2023-10-18 08:48:44 +02:00

72 lines
1.4 KiB
JavaScript

import { execaSync as exec } from 'execa';
import assert from 'node:assert';
import fs from 'node:fs';
var failures = 0;
function runTest(variant, env) {
var NODE_ENV = process.env.NODE_ENV;
process.env.VARIANT = variant;
process.env.NODE_ENV = env;
console.log('[TEST] ' + variant + '@' + env);
console.log(`[EXEC] VARIANT=${variant} NODE_ENV=${env} karma start test/config/karma.distro.js`);
try {
exec('karma', [ 'start', 'test/config/karma.distro.js' ], {
stdio: 'inherit'
});
} catch (e) {
console.error('[TEST] FAILURE ' + variant + '@' + env);
console.error(e);
failures++;
} finally {
process.env.NODE_ENV = NODE_ENV;
}
}
function verifyAssets() {
const assets = [
'bpmn-font/css/bpmn-embedded.css',
'bpmn-font/font/bpmn.woff',
'bpmn-js.css',
'diagram-js.css'
];
for (const asset of assets) {
try {
assert.ok(fs.existsSync('dist/assets/' + asset), `${asset} missing`);
} catch (e) {
console.error('[TEST] ASSET ' + asset);
console.error(e);
failures++;
}
}
}
function test() {
runTest('bpmn-modeler', 'development');
runTest('bpmn-modeler', 'production');
runTest('bpmn-navigated-viewer', 'development');
runTest('bpmn-navigated-viewer', 'production');
runTest('bpmn-viewer', 'development');
runTest('bpmn-viewer', 'production');
verifyAssets();
if (failures) {
process.exit(1);
}
}
test();