30 lines
1,001 B
JavaScript
30 lines
1,001 B
JavaScript
/*
|
|
* 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);
|
|
});
|
|
});
|
|
|