From 101bc15bf59ca12e3cd312275622bb0d72636328 Mon Sep 17 00:00:00 2001 From: Dotta Date: Sun, 26 Apr 2026 17:16:02 -0500 Subject: [PATCH] Harden environment-sensitive server tests Co-Authored-By: Paperclip --- .../src/__tests__/environment-live-ssh.test.ts | 2 +- server/src/__tests__/feedback-service.test.ts | 16 ++++++++++++++-- .../heartbeat-comment-wake-batching.test.ts | 16 ++++++++++++++-- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/server/src/__tests__/environment-live-ssh.test.ts b/server/src/__tests__/environment-live-ssh.test.ts index 303d7ff7d9c..cf831b04e53 100644 --- a/server/src/__tests__/environment-live-ssh.test.ts +++ b/server/src/__tests__/environment-live-ssh.test.ts @@ -180,5 +180,5 @@ describeLiveSsh("live SSH environment smoke", () => { expect(result.stdout).toContain(config.remoteWorkspacePath); expect(result.stdout).toContain("git"); expect(result.stdout).toContain("tar"); - }); + }, 30_000); }); diff --git a/server/src/__tests__/feedback-service.test.ts b/server/src/__tests__/feedback-service.test.ts index 8a979d84c52..bde8659b03d 100644 --- a/server/src/__tests__/feedback-service.test.ts +++ b/server/src/__tests__/feedback-service.test.ts @@ -22,13 +22,25 @@ import { issues, } from "@paperclipai/db"; import { feedbackService } from "../services/feedback.ts"; -import { startEmbeddedPostgresTestDatabase } from "./helpers/embedded-postgres.ts"; +import { + getEmbeddedPostgresTestSupport, + startEmbeddedPostgresTestDatabase, +} from "./helpers/embedded-postgres.ts"; + +const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; + +if (!embeddedPostgresSupport.supported) { + console.warn( + `Skipping embedded Postgres feedback service tests on this host: ${embeddedPostgresSupport.reason ?? "unsupported environment"}`, + ); +} async function closeDbClient(db: ReturnType | undefined) { await db?.$client?.end?.({ timeout: 0 }); } -describe("feedbackService.saveIssueVote", () => { +describeEmbeddedPostgres("feedbackService.saveIssueVote", () => { let db!: ReturnType; let svc!: ReturnType; let tempDb: Awaited> | null = null; diff --git a/server/src/__tests__/heartbeat-comment-wake-batching.test.ts b/server/src/__tests__/heartbeat-comment-wake-batching.test.ts index c0edc51ce80..a883a370097 100644 --- a/server/src/__tests__/heartbeat-comment-wake-batching.test.ts +++ b/server/src/__tests__/heartbeat-comment-wake-batching.test.ts @@ -15,7 +15,19 @@ import { import { runningProcesses } from "../adapters/index.js"; import { heartbeatService } from "../services/heartbeat.ts"; import { SUCCESSFUL_RUN_HANDOFF_REQUIRED_NOTICE_BODY } from "../services/recovery/index.ts"; -import { startEmbeddedPostgresTestDatabase } from "./helpers/embedded-postgres.ts"; +import { + getEmbeddedPostgresTestSupport, + startEmbeddedPostgresTestDatabase, +} from "./helpers/embedded-postgres.ts"; + +const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; + +if (!embeddedPostgresSupport.supported) { + console.warn( + `Skipping embedded Postgres heartbeat comment wake batching tests on this host: ${embeddedPostgresSupport.reason ?? "unsupported environment"}`, + ); +} async function waitFor(condition: () => boolean | Promise, timeoutMs = 10_000, intervalMs = 50) { const startedAt = Date.now(); @@ -147,7 +159,7 @@ async function createControlledGatewayServer() { }; } -describe("heartbeat comment wake batching", () => { +describeEmbeddedPostgres("heartbeat comment wake batching", () => { let db!: ReturnType; let tempDb: Awaited> | null = null;