Commit Graph

6 Commits

Author SHA1 Message Date
alexpaynex
ae25bfdf71 Improve test reliability by adding explicit checks for bootstrap process
Update testkit.ts to add explicit failure conditions for missing payment hash in stub mode and to assert that the bootstrapJobId returned in the poll response matches the created ID.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 418bf6f8-212b-4bb0-a7a5-8231a061da4e
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 9114d92d-daf7-42ae-a3f7-be296300efa5
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/9f85e954-647c-46a5-90a7-396e495a805a/418bf6f8-212b-4bb0-a7a5-8231a061da4e/Q83Uqvu
Replit-Helium-Checkpoint-Created: true
2026-03-19 04:08:01 +00:00
alexpaynex
031ca5a5c3 task(#24): Bootstrap route + cost-ledger testkit coverage — 29/29 PASS
Task: Add T23 (bootstrap stub flow) and T24 (cost-ledger completeness) to the
testkit, bringing total from 27/27 to 29/29 PASS with 0 FAIL, 0 SKIP.

## What was changed
- `artifacts/api-server/src/routes/testkit.ts`:
  - Updated audit-log comment block to document T23 + T24 additions.
  - Inserted Test 23 after T22 (line ~654):
      POST /api/bootstrap → assert 201 + bootstrapJobId present.
      Guard on stubMode=true; SKIP if real DO mode (prevents hanging).
      Stub-pay the paymentHash via /api/dev/stub/pay/:hash.
      Poll GET /api/bootstrap/:id every 2s (20s timeout) until
      state=provisioning or state=ready; assert message field present.
  - Inserted Test 24 after T23:
      Guarded on STATE_T6=complete (reuses completed job from T6).
      GET /api/jobs/:id, extract costLedger.
      Assert all 8 fields non-null: actualInputTokens, actualOutputTokens,
        totalTokens, actualCostUsd, actualAmountSats, workAmountSats,
        refundAmountSats, refundState.
      Honest-accounting invariant: actualAmountSats <= workAmountSats.
      refundAmountSats >= 0.
      refundState must match ^(not_applicable|pending|paid)$.

## No deviations from task spec
- T23 guard logic matches spec exactly (stubMode check before poll).
- T24 fields match the 8 specified in task-24.md plus the invariants.
- No changes to bootstrap.ts or jobs.ts — existing routes already correct.

## Test run result
29/29 PASS, 0 FAIL, 0 SKIP (fresh server restart, rate-limit slots clean).
T23: state=provisioning in 1s. T24: actualAmountSats(179)<=workAmountSats(182),
refundAmountSats=3, refundState=pending.
2026-03-19 04:04:49 +00:00
4f7a5e9998 test: audit testkit — remove T3b inflation, add T17-T22 (27/27 PASS) (#32) 2026-03-18 22:34:12 -04:00
83a2ec19e2 fix(testkit): macOS compat + fix test 8c ordering (#24) 2026-03-18 21:01:13 -04:00
alexpaynex
ab2cc06a79 Add session mode for pre-funded request processing
Implement session-based API endpoints for creating, managing, and interacting with pre-funded sessions, including deposit and top-up invoice generation, macaroon authentication, and per-request debiting of compute costs.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 418bf6f8-212b-4bb0-a7a5-8231a061da4e
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 2dc3847e-7186-4a22-9c7e-16cd31bca8d9
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/9f85e954-647c-46a5-90a7-396e495a805a/418bf6f8-212b-4bb0-a7a5-8231a061da4e/sPDHkg8
Replit-Helium-Checkpoint-Created: true
2026-03-18 20:00:24 +00:00
alexpaynex
fc4fd50e33 Add automated testing flow to reduce manual effort
Integrate a new testkit endpoint and update package.json scripts to enable automated testing via `pnpm test` and `pnpm test:prod`, including a new test case for request body size limits.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 418bf6f8-212b-4bb0-a7a5-8231a061da4e
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 60472e18-59b7-4877-a9a2-16381573ab68
Replit-Helium-Checkpoint-Created: true
2026-03-18 17:43:01 +00:00