test(turbodocx-sdk): getRecipients has eval coverage for only 2 of 6 languages
Assessment
This issue has not been assessed yet.
Description
Problem
PR #18 added getRecipients to all six language references in the turbodocx-sdk skill, but only added two eval cases:
- id 45 — Express (JavaScript/TypeScript)
- id 46 — Spring Boot (Java)
Python, Go, PHP and Ruby got documentation with no eval coverage. A regression in those four templates — a wrong method name, a dropped await, a swallowed error return — would not be caught by claude evals run evals/evals.json.
This matters more than usual for this method because the SDKs expose it under four different shapes:
| Language | Call |
|---|---|
| Python | await TurboSign.get_recipients(document_id) |
| Go | GetRecipients(ctx, documentID) |
| PHP | getRecipients($documentId) |
| Ruby | get_recipients(document_id) |
Why it's worth covering
Two failure modes are specific to this method and produce code that looks correct:
- Reaching for
getStatusinstead. It returns only{ status }— the document-level state — so it cannot answer "who has signed and who are we still waiting on". Generated code compiles and runs, and answers the wrong question. - Branching on
statusinstead ofeffectiveStatus. There is no per-recipient declined/voided/expired state, so on a voided or expired document an unsigned signer still readspendinginstatus. Code branching on it chases people whose signing links are already dead.
Both are asserted in evals 45/46 and should be asserted for the other four languages too.
Per-language traps also worth pinning:
- Python — the method is async; a bare call returns a coroutine rather than the roster.
- Go — takes a
context.Contextfirst argument and returns a two-value(result, error); a discarded error hides the failure.
Proposed fix
Add eval ids 50–53 covering FastAPI, Gin, Laravel and Rails, modelled on the existing 45/46 and using each SDK's real method shape.
Verified against a live endpoint
The underlying endpoint was exercised end to end on staging through a document's full lifecycle (sent → resent → viewed → signed), 16/16 assertions passing at every step, so the behaviour these evals describe is confirmed rather than assumed.
- Dominant language
- No language data
- Stars
- 3
- Forks
- 0
- Avg merge
- 41m
- Merged PRs (30d)
- 1
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from TurboDocx/quickstart
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
TurboDocx/quickstart#13 ·