f6b5539004
Original task (#127): the `test` workflow ran `pnpm --filter @workspace/api-server test` directly, which fires HTTP requests at localhost:8080. On a freshly-started environment the API server isn't up yet, so every test fails with ECONNREFUSED, drowning real failures in noise. Changes: - Added `artifacts/api-server/scripts/wait-for-server.mjs`, a small pure-Node poller that hits `${TEST_API_BASE ?? "http://localhost:8080"}/api/healthz` every 500ms until it returns `{status: "ok"}` or the timeout (default 30s) elapses. On timeout it exits 1 with a clear "Start the API Server workflow (or set TEST_API_BASE) before running tests" message instead of a wall of fetch errors. Configurable via `TEST_API_BASE`, `TEST_API_WAIT_TIMEOUT_MS`, `TEST_API_WAIT_INTERVAL_MS`. - Added `test:wait` script to `artifacts/api-server/package.json`. - Updated the `test` workflow to run `pnpm --filter @workspace/api-server test:wait` before the api-server tests and the tx-os e2e tests. Verified: - `node ./scripts/wait-for-server.mjs` against a running server reports "ready ... after 86ms" and exits 0. - Same script with TEST_API_BASE pointed at a dead port exits 1 with the friendly message. - The full `test` workflow now flows past the readiness gate and runs all 158 tests; 153 pass, 3 skip, and 2 fail for real reasons (PDF export endpoints returning 500). Filed follow-up #179 for the PDF bugs. No deviations from the task. `.replit` was edited via the workflow configuration tool (direct edits are blocked). Replit-Task-Id: 99673314-dd15-4442-8c7d-f375431719c0
72 lines
1.1 KiB
Plaintext
72 lines
1.1 KiB
Plaintext
modules = ["nodejs-24", "python-3.11", "postgresql-16"]
|
|
|
|
[deployment]
|
|
router = "application"
|
|
deploymentTarget = "autoscale"
|
|
|
|
[deployment.postBuild]
|
|
args = ["pnpm", "store", "prune"]
|
|
env = { "CI" = "true" }
|
|
|
|
[workflows]
|
|
runButton = "Project"
|
|
|
|
[[workflows.workflow]]
|
|
name = "Project"
|
|
mode = "parallel"
|
|
author = "agent"
|
|
|
|
[[workflows.workflow.tasks]]
|
|
task = "workflow.run"
|
|
args = "test"
|
|
|
|
[[workflows.workflow]]
|
|
name = "test"
|
|
author = "agent"
|
|
|
|
[workflows.workflow.metadata]
|
|
outputType = "console"
|
|
|
|
[[workflows.workflow.tasks]]
|
|
task = "shell.exec"
|
|
args = "pnpm --filter @workspace/api-server test:wait && pnpm --filter @workspace/api-server test && pnpm --filter @workspace/tx-os test:e2e"
|
|
|
|
[agent]
|
|
stack = "PNPM_WORKSPACE"
|
|
expertMode = true
|
|
|
|
[postMerge]
|
|
path = "scripts/post-merge.sh"
|
|
timeoutMs = 120000
|
|
|
|
[[ports]]
|
|
localPort = 8080
|
|
externalPort = 8080
|
|
|
|
[[ports]]
|
|
localPort = 8081
|
|
externalPort = 80
|
|
|
|
[[ports]]
|
|
localPort = 8082
|
|
externalPort = 3003
|
|
|
|
[[ports]]
|
|
localPort = 8083
|
|
externalPort = 5173
|
|
|
|
[[ports]]
|
|
localPort = 25785
|
|
externalPort = 3000
|
|
|
|
[[ports]]
|
|
localPort = 25786
|
|
externalPort = 3002
|
|
|
|
[[ports]]
|
|
localPort = 25787
|
|
externalPort = 5000
|
|
|
|
[nix]
|
|
channel = "stable-25_05"
|