test-card/tests/utils.ts
Tomáš Mládek c30bffac73
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
test: rudimentary visual testing for test card
2025-09-27 14:14:27 +02:00

42 lines
925 B
TypeScript

import { spawn, type ChildProcess } from 'child_process';
import waitOn from 'wait-on';
import debug from 'debug';
const dbg = debug('test-card:utils');
const SERVER_PORT = 5888;
let devServer: ChildProcess;
export async function startDevServer(): Promise<void> {
return new Promise((resolve, reject) => {
dbg('Starting dev server on http://localhost:%d...', SERVER_PORT);
devServer = spawn(
'npm',
['run', 'dev', '--', '--host', 'localhost', '--port', String(SERVER_PORT)],
{
stdio: 'pipe',
shell: true
}
);
// Wait until SvelteKit dev server responds
waitOn(
{
resources: [`http://localhost:${SERVER_PORT}`],
timeout: 30000
},
(err) => {
if (err) reject(err);
else resolve();
}
);
dbg('Dev server started');
});
}
export async function stopDevServer(): Promise<void> {
if (devServer) {
dbg('Stopping dev server...');
devServer.kill('SIGTERM');
}
}