Skip to content

test(metrics): cover stats breakdown pagination and error paths - #418

Merged
mikewheeleer merged 4 commits into
Agentpay-Org:mainfrom
thlpkee20-wq:test/metrics-01-endpoint
Jul 28, 2026
Merged

test(metrics): cover stats breakdown pagination and error paths#418
mikewheeleer merged 4 commits into
Agentpay-Org:mainfrom
thlpkee20-wq:test/metrics-01-endpoint

Conversation

@thlpkee20-wq

Copy link
Copy Markdown
Contributor

Closes #389

Adds src/stats-breakdown.test.ts covering the servicesBreakdown
pagination (first/second page, total, stable cursor), malformed-cursor
rejection, unknown-query-param rejection on both /api/v1/stats and
/api/v1/metrics, and an idempotent-repeat check.

Test plan

  • npm run build
  • npm run lint
  • npm test — targeted run of stats-breakdown.test.js,
    routes/operational.test.js: 10/10 passing.

Note

Stacked on #415/#416/#417 (same fork-only caveat noted on other PRs in
this series). The test-specific change is the single new file,
src/stats-breakdown.test.ts.

The health/deep checks handler inlined its own base64url cursor
encode/decode and page-slicing logic. Extracted it into a generic
paginateByCursor() in src/cursorPagination.ts (mirroring the offset
pagination helper already shared between the api-keys and webhooks list
endpoints) and refactored the health handler to use it. No behavior
change; this is the shared entry point subsequent metrics pagination
work will build on.
/api/v1/metrics and /api/v1/stats now reject any query parameter with a
structured 400 invalid_request; neither route accepts parameters today.
Adds servicesBreakdown (per-service tenantId/serviceId/priceStroops/
requestsOutstanding) to GET /api/v1/stats, cursor-paginated via the
shared paginateByCursor() helper (limit default 50, max 500, stable
nextServicesBreakdownCursor). /api/v1/metrics itself stays unpaginated
Prometheus exposition text, since paginating a scrape target would
break standard Prometheus clients.
Adds src/stats-breakdown.test.ts covering the servicesBreakdown
pagination (first/second page, total, stable cursor), malformed-cursor
rejection, unknown-query-param rejection on both /api/v1/stats and
/api/v1/metrics, and an idempotent-repeat check.
@mikewheeleer

Copy link
Copy Markdown
Contributor

great contribution @thlpkee20-wq! smooth review. merging 🙏

@mikewheeleer
mikewheeleer merged commit 003d13b into Agentpay-Org:main Jul 28, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tests for the metrics endpoint success and error paths

2 participants