@bsv/message-box-client
Version:
A client for P2P messaging and payments
61 lines • 1.79 kB
JavaScript
import { spawn } from 'child_process';
import { resolve } from 'path';
let serverProcess = null;
async function isServerRunning() {
try {
await fetch('http://localhost:8080/health'); // Use an actual health check route
return true;
}
catch {
return false;
}
}
/**
* Starts the MessageBoxServer as a separate process if not already running.
*/
export async function startTestServer() {
if (await isServerRunning()) {
console.log('Test server already running.');
return;
}
console.log('Starting test server...');
serverProcess = spawn('npm', ['run', 'dev'], {
cwd: resolve(__dirname, '../../../MessageBoxServer'),
stdio: 'inherit',
shell: true
});
await new Promise((resolve, reject) => {
const timeout = setTimeout(() => {
reject(new Error('Test server startup timed out'));
}, 10000);
serverProcess.on('error', (err) => {
console.error('Test server failed to start:', err);
clearTimeout(timeout);
reject(err);
});
setTimeout(() => {
console.log('Test server started.');
clearTimeout(timeout);
resolve(undefined);
}, 3000);
});
}
/**
* Stops the MessageBoxServer process after tests.
*/
export async function stopTestServer() {
if (serverProcess === null) {
console.warn('Test server process is already stopped or undefined.');
return;
}
console.log('Stopping test server...');
try {
serverProcess.kill();
console.log('Test server stopped.');
}
catch (error) {
console.error('Error stopping test server:', error);
}
serverProcess = null;
}
//# sourceMappingURL=testServer.js.map