test(turbodocx-sdk): getRecipients has eval coverage for only 2 of 6 languages
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
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.
- Lingua principale
- Nessun dato sulla lingua
- Stelle
- 3
- Fork
- 0
- Merge medio
- 4g 22h
- PR unite (30g)
- 4
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TurboDocx/quickstart
-
feat(turbodocx-sdk): send a template with signer rolesForse già presa @nicolasiscoding l’ha presa 4 giorni fa. Aperta
TurboDocx/quickstart#37 · 1 assegnatario ·
-
turbodocx-sdk skill: identityAssertion on non-external_idv recipients is rejected, not ignoredForse già presa @nicolasiscoding l’ha presa 5 giorni fa. ApertaS3
TurboDocx/quickstart#32 · 1 assegnatario ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
TurboDocx/quickstart#13 ·