fix(selectors): paginate HubSpot list options - #7327
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
There was a problem hiding this comment.
No issues found across 5 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Heads up: you’re close to your included review allowance. Set a flex budget so reviews don’t pause.
Re-trigger cubic
Greptile SummaryThis PR updates HubSpot list selectors to support server-side search, offset-based pagination, and direct detail hydration for saved values.
Confidence Score: 5/5The PR appears safe to merge with no concrete changed-code failure identified. The HubSpot request shapes, continuation handling, selector capabilities, and detail hydration are internally consistent and covered by focused regression tests; investigated compatibility concerns were contradicted by current contracts or existing repository behavior.
|
| Filename | Overview |
|---|---|
| apps/sim/lib/selectors/server/providers/hubspot.ts | Implements validated list search pagination and direct list-by-ID hydration without an identified actionable defect. |
| apps/sim/lib/selectors/manifest.ts | Enables pagination, search, and detail capabilities for the HubSpot lists selector consistently with the provider implementation. |
| apps/sim/triggers/hubspot/poller.ts | Exposes search for the HubSpot list-membership selector, matching the newly enabled manifest capability. |
| apps/sim/lib/selectors/server/providers/hubspot.test.ts | Covers search-body normalization, continuation-offset handling, terminal pagination, and direct detail hydration. |
| apps/sim/lib/selectors/server/providers/pipedrive.test.ts | Adds regression coverage confirming semantic API failures are surfaced instead of converted into empty options. |
Reviews (1): Last reviewed commit: "fix(selectors): paginate HubSpot list op..." | Re-trigger Greptile
Summary
Fixes HubSpot list selectors so they use the documented search request body, follow HubSpot's continuation offset, and hydrate saved list labels directly by ID. The HubSpot list-membership trigger now exposes server-side search.
Pipedrive runtime behavior is unchanged because #7185 already validates its response envelope; this PR adds focused regression coverage proving an HTTP-success response with
success: falseraises the public selector error instead of becoming an empty list.Related: #7185
Type of Change
Testing
bun run --cwd apps/sim test lib/selectors/server/providers/hubspot.test.ts lib/selectors/server/providers/pipedrive.test.ts lib/selectors/manifest.test.ts hooks/queries/selectors.test.tsx— 4 files, 19 tests passed.bun run type-check— 26/26 tasks passed.bun run lint:check— 26/26 tasks passed; no fixes applied.bun run check:api-validation— passed with 637/637 routes Zod-backed.bun run test— final run passed all 19 Turbo tasks; the Sim app reported 2,774 files and 38,328 tests passed (7 files and 67 tests skipped).Provider behavior coverage is intentionally limited to three tests:
success: false.count, trimmedquery, and numericoffsetin the search body, uses the first response's offset for page two, and omits the terminal cursor.Live Chrome verification used a HubSpot trial portal, a temporary private app scoped only to
crm.lists.read, and one static list namedSim CRM selector QA 20260831-1710. In a disposable workflow on the isolated port-3004 app:hubspot.listsdetail request and preserved the label.Checklist
Screenshots/Videos
Not applicable; this is a behavioral selector fix with no visual design change.