@bsv/message-box-client
Version:
A client for P2P messaging and payments
65 lines • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.startTestServer = startTestServer;
exports.stopTestServer = stopTestServer;
const child_process_1 = require("child_process");
const path_1 = require("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.
*/
async function startTestServer() {
if (await isServerRunning()) {
console.log('Test server already running.');
return;
}
console.log('Starting test server...');
serverProcess = (0, child_process_1.spawn)('npm', ['run', 'dev'], {
cwd: (0, path_1.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.
*/
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