/* eslint-disable no-console */ const path = require('path'); const Myt = require('@verdnatura/myt/myt'); const Run = require('@verdnatura/myt/myt-run'); const helper = require('./tests-helper'); let server; const isCI = process.argv[2] === 'ci'; const PARALLEL = false; const TIMEOUT = 900000; process.on('SIGINT', teardown); process.on('exit', teardown); process.on('uncaughtException', onError); process.on('unhandledRejection', onError); async function setup() { console.log('Building and running DB container.'); const myt = new Myt(); await myt.init({ workspace: path.join(__dirname, '..'), random: true, ci: isCI, tmpfs: process.platform == 'linux', network: isCI ? 'jenkins' : null }); server = await myt.run(Run); await myt.deinit(); const {dbConfig} = server; process.env.DB_HOST = dbConfig.host; process.env.DB_PORT = dbConfig.port; if (!PARALLEL) await helper.init(); } async function teardown() { if (!server) return; if (!PARALLEL) await helper.deinit(); console.log('Stopping and removing DB container.'); await server.rm(); server = null; } async function onError(err) { await teardown(); console.error(err); } async function test() { let runner; const config = { globalSetup: setup, globalSetupTimeout: TIMEOUT, globalTeardown: teardown, globalTeardownTimeout: TIMEOUT, spec_dir: '.', spec_files: [ 'back/**/*[sS]pec.js', 'loopback/**/*[sS]pec.js', 'modules/*/back/**/*.[sS]pec.js' ], helpers: [] }; if (PARALLEL) { const ParallelRunner = require('jasmine/parallel'); runner = new ParallelRunner({numWorkers: 1}); config.helpers.push(`back/tests-helper.js`); } else { const Jasmine = require('jasmine'); runner = new Jasmine(); const SpecReporter = require('jasmine-spec-reporter').SpecReporter; runner.addReporter(new SpecReporter({ spec: { displaySuccessful: isCI, displayPending: isCI }, summary: { displayPending: false, } })); } if (isCI) { const JunitReporter = require('jasmine-reporters'); runner.addReporter(new JunitReporter.JUnitXmlReporter()); runner.jasmine.DEFAULT_TIMEOUT_INTERVAL = TIMEOUT; } // runner.loadConfigFile('back/jasmine.json'); runner.loadConfig(config); await runner.execute(); } test();