90 lines
2.3 KiB
JavaScript
90 lines
2.3 KiB
JavaScript
const path = require('path');
|
|
const Myt = require('@verdnatura/myt/myt');
|
|
const Run = require('@verdnatura/myt/myt-run');
|
|
let dataSources = require('../loopback/server/datasources.json');
|
|
|
|
let myt;
|
|
|
|
process.on('warning', warning => {
|
|
console.log(warning.name);
|
|
console.log(warning.message);
|
|
console.log(warning.stack);
|
|
});
|
|
|
|
process.on('SIGUSR2', async() => {
|
|
if (myt) await myt.deinit();
|
|
});
|
|
|
|
process.on('exit', async function() {
|
|
if (myt) await myt.deinit();
|
|
});
|
|
|
|
async function test() {
|
|
const isCI = process.argv[2] === 'ci';
|
|
|
|
myt = new Myt();
|
|
await myt.init({
|
|
workspace: path.join(__dirname, '..'),
|
|
random: true,
|
|
ci: isCI,
|
|
tmpfs: true,
|
|
network: isCI ? 'jenkins' : null
|
|
});
|
|
const {dbConfig} = await myt.run(Run);
|
|
|
|
dataSources = JSON.parse(JSON.stringify(dataSources));
|
|
Object.assign(dataSources.vn, {
|
|
host: dbConfig.host,
|
|
port: dbConfig.port
|
|
});
|
|
|
|
const bootOptions = {dataSources};
|
|
const app = require('vn-loopback/server/server');
|
|
await new Promise((resolve, reject) => {
|
|
app.boot(bootOptions,
|
|
err => err ? reject(err) : resolve());
|
|
});
|
|
// FIXME: Workaround to wait for loopback to be ready
|
|
await app.models.Application.status();
|
|
|
|
const Jasmine = require('jasmine');
|
|
const jasmine = new Jasmine();
|
|
|
|
const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
|
|
jasmine.addReporter(new SpecReporter({
|
|
spec: {
|
|
displaySuccessful: isCI,
|
|
displayPending: isCI
|
|
},
|
|
summary: {
|
|
displayPending: false,
|
|
}
|
|
}));
|
|
|
|
if (isCI) {
|
|
const JunitReporter = require('jasmine-reporters');
|
|
jasmine.addReporter(new JunitReporter.JUnitXmlReporter());
|
|
|
|
jasmine.exitOnCompletion = true;
|
|
jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 900000;
|
|
}
|
|
|
|
const backSpecs = [
|
|
'./back/**/*[sS]pec.js',
|
|
'./loopback/**/*[sS]pec.js',
|
|
'./modules/*/back/**/*.[sS]pec.js'
|
|
];
|
|
|
|
jasmine.loadConfig({
|
|
spec_dir: '.',
|
|
spec_files: backSpecs,
|
|
helpers: [],
|
|
});
|
|
await jasmine.execute();
|
|
if (app) await app.disconnect();
|
|
if (myt) await myt.deinit();
|
|
console.log('App disconnected & container removed');
|
|
}
|
|
|
|
test();
|