1
0
Fork 0
freesewing/packages/backend/scripts/testci.js

31 lines
1,001 B
JavaScript
Raw Normal View History

/*
* Starts an in-memory database and a server before running tests.
*/
import '../tests/env.js';
import mongoose from 'mongoose';
import { MongoMemoryServer } from 'mongodb-memory-server';
import { loadSampleData, runTasks } from '../src/cli/lib';
import { startApp } from '../src/app';
import { spawn } from 'child_process';
(async () => {
return MongoMemoryServer.create({ instance: { port: 27017 } });
})()
.then((mongoServer) => {
mongoose.connect(mongoServer.getUri() + "freesewing", { useNewUrlParser: true });
})
.then(() => { runTasks({ reboot: true }) })
.then(loadSampleData)
.then(startApp)
.then(() => {
// Forward command-line args to test process.
const args = ['run', 'test', '--', '--reporter', '../../tests/reporters/terse.js'].concat(process.argv.slice(2));
spawn('npm', args, { stdio: 'inherit' })
.on('exit', function(code) {
// Propagate exit code so that test failures are recognized.
process.exit(code);
});
});