mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-03-17 10:03:08 +00:00
* Changes from fix/cursor-fix * feat: Enhance provider error messages with diagnostic context, address test failure, fix port change, move playwright tests to different port * Update apps/ui/src/components/views/board-view/dialogs/add-feature-dialog.tsx Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * ci: Update test server port from 3008 to 3108 and add environment configuration * fix: Correct typo in health endpoint URL and standardize port env vars --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
/**
|
|
* Kill any existing servers on test ports before running tests
|
|
* This ensures the test server starts fresh with the correct API key
|
|
*/
|
|
|
|
import { exec } from 'child_process';
|
|
import { promisify } from 'util';
|
|
|
|
const execAsync = promisify(exec);
|
|
|
|
const SERVER_PORT = process.env.TEST_SERVER_PORT || 3108;
|
|
const UI_PORT = process.env.TEST_PORT || 3107;
|
|
const USE_EXTERNAL_SERVER = !!process.env.VITE_SERVER_URL;
|
|
console.log(`[KillTestServers] SERVER_PORT ${SERVER_PORT}`);
|
|
console.log(`[KillTestServers] UI_PORT ${UI_PORT}`);
|
|
async function killProcessOnPort(port) {
|
|
try {
|
|
const hasLsof = await execAsync('command -v lsof').then(
|
|
() => true,
|
|
() => false
|
|
);
|
|
|
|
if (hasLsof) {
|
|
const { stdout } = await execAsync(`lsof -ti:${port}`);
|
|
const pids = stdout.trim().split('\n').filter(Boolean);
|
|
|
|
if (pids.length > 0) {
|
|
console.log(`[KillTestServers] Found process(es) on port ${port}: ${pids.join(', ')}`);
|
|
for (const pid of pids) {
|
|
try {
|
|
await execAsync(`kill -9 ${pid}`);
|
|
console.log(`[KillTestServers] Killed process ${pid}`);
|
|
} catch (_error) {
|
|
// Process might have already exited
|
|
}
|
|
}
|
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
}
|
|
return;
|
|
}
|
|
|
|
const hasFuser = await execAsync('command -v fuser').then(
|
|
() => true,
|
|
() => false
|
|
);
|
|
if (hasFuser) {
|
|
await execAsync(`fuser -k -9 ${port}/tcp`).catch(() => undefined);
|
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
return;
|
|
}
|
|
} catch (_error) {
|
|
// No process on port, which is fine
|
|
}
|
|
}
|
|
|
|
async function main() {
|
|
console.log('[KillTestServers] Checking for existing test servers...');
|
|
if (!USE_EXTERNAL_SERVER) {
|
|
await killProcessOnPort(Number(SERVER_PORT));
|
|
}
|
|
await killProcessOnPort(Number(UI_PORT));
|
|
console.log('[KillTestServers] Done');
|
|
}
|
|
|
|
main().catch(console.error);
|