fiftyone.pipeline.engines
Version:
Shared base functionality for implementing engines for the 51Degrees Pipeline API
68 lines (52 loc) • 2.06 kB
JavaScript
/* *********************************************************************
* This Original Work is copyright of 51 Degrees Mobile Experts Limited.
* Copyright 2026 51 Degrees Mobile Experts Limited, Davidson House,
* Forbury Square, Reading, Berkshire, United Kingdom RG1 3EU.
*
* This Original Work is licensed under the European Union Public Licence
* (EUPL) v.1.2 and is subject to its terms as set out below.
*
* If a copy of the EUPL was not distributed with this file, You can obtain
* one at https://opensource.org/licenses/EUPL-1.2.
*
* The 'Compatible Licences' set out in the Appendix to the EUPL (as may be
* amended by the European Commission) shall be deemed incompatible for
* the purposes of the Work and the provisions of the compatibility
* clause in Article 5 of the EUPL shall not apply.
*
* If using the Work as, or as part of, a network application, by
* including the attribution notice(s) required under Article 5 of the EUPL
* in the end user terms of the application under an appropriate heading,
* such notice(s) shall fulfill the requirements of that article.
* ********************************************************************* */
const fs = require('fs');
const path = require('path');
const testExample = function ({ file, portNumber }) {
if (portNumber) {
process.env.PORT = portNumber;
}
// Change the working directory of the example to be the example itself
process.env.directory = path.dirname(file);
let code = fs.readFileSync(file, 'utf8');
// Add in closer of any apps
const serverClose = `
if(typeof server !== "undefined"){
server.close();
}
`;
code += serverClose;
() => jest.fn(eval(code)); // eslint-disable-line
};
test('caching example', () => {
testExample(
{ file: path.resolve(__dirname, '..', 'examples', 'caching.js') }
);
});
test('on premise flow element example', () => {
testExample(
{
file: path.resolve(__dirname, '..', 'examples', 'onPremiseFlowElement.js'),
portNumber: 3002
}
);
});