const Docker = require('../db/docker.js'); let dataSources = require('../loopback/server/datasources.json'); process.on('warning', warning => { console.log(warning.name); console.log(warning.message); console.log(warning.stack); }); async function test() { let isCI = false; if (process.argv[2] === 'ci') isCI = true; const container = new Docker(); await container.run(isCI); dataSources = JSON.parse(JSON.stringify(dataSources)); Object.assign(dataSources.vn, { host: container.dbConf.host, port: container.dbConf.port }); const bootOptions = {dataSources}; const app = require('vn-loopback/server/server'); app.boot(bootOptions); const SpecReporter = require('jasmine-spec-reporter').SpecReporter; const specReporter = new SpecReporter({ spec: { displaySuccessful: isCI, displayPending: isCI }, summary: { displayPending: false, } }); const reporters = [specReporter]; if (isCI) { const JunitReporter = require('jasmine-reporters'); const junitReporter = new JunitReporter.JUnitXmlReporter(); reporters.push(junitReporter); } const Jasmine = require('jasmine'); const jasmine = new Jasmine({ reporter: reporters }); if (isCI) jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000; const backSpecs = [ './back/**/*[sS]pec.js', './loopback/**/*[sS]pec.js', './modules/*/back/**/*.[sS]pec.js' ]; jasmine.loadConfig({ spec_dir: '.', spec_files: backSpecs, helpers: [], }); jasmine.exitOnCompletion = false; await jasmine.execute(); if (app) await app.disconnect(); if (container) await container.rm(); console.log('app disconnected & container removed'); } test();