Files
OpenSign/apps/OpenSignServer/spec/utils/test-runner.js
T
2023-10-22 01:37:25 +05:30

50 lines
1.4 KiB
JavaScript

import http from 'http';
import { ParseServer } from 'parse-server';
import { app, config } from '../../index.js';
export const dropDB = async () => {
await Parse.User.logOut();
return await Parse.Server.database.deleteEverything(true);
};
let parseServerState = {};
/**
* Starts the ParseServer instance
* @param {Object} parseServerOptions Used for creating the `ParseServer`
* @return {Promise} Runner state
*/
export async function startParseServer() {
delete config.databaseAdapter;
const parseServerOptions = Object.assign(config, {
databaseURI: 'mongodb://localhost:27017/parse-test',
masterKey: 'test',
javascriptKey: 'test',
appId: 'test',
port: 30001,
mountPath: '/test',
serverURL: `http://localhost:30001/test`,
logLevel: 'error',
silent: true,
});
const parseServer = new ParseServer(parseServerOptions);
await parseServer.start();
app.use(parseServerOptions.mountPath, parseServer.app);
const httpServer = http.createServer(app);
await new Promise(resolve => httpServer.listen(parseServerOptions.port, resolve));
Object.assign(parseServerState, {
parseServer,
httpServer,
parseServerOptions,
});
return parseServerOptions;
}
/**
* Stops the ParseServer instance
* @return {Promise}
*/
export async function stopParseServer() {
await new Promise(resolve => parseServerState.httpServer.close(resolve));
parseServerState = {};
}