-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement 'paths' endpoints #107
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ziet er goed uit "as always". Ik zou graag nog wat toevoegingen zien aan de tests.
- Kunnen we de gemaakte requests uitvoegen op de horizon API? Ja, die gaan inderdaad geen resultaat opleveren, dus daaraan kunnen we niets checken. Maar er zijn bepaalde combinaties wel en niet mogelijk met dit endpoint. Ik wil eigenlijk borgen dat alleen die scenario's ondersteunen die een status 200 terug geven, en geen 400 (bad request).
Bijv: als ik alleen de 'required' inputs invul, krijg ik toch heen status code 400 terug.
Als ik alles in vul, krijg ik ook een 400:
{
"type": "https://stellar.org/horizon-errors/bad_request",
"title": "Bad Request",
"status": 400,
"detail": "The request requires either a list of source assets or a source account. Both fields cannot be present."
}
Er zijn dus een aantal combinaties die werken met die endpoint, en een aantal combinaties die niet werken. Die moeten we wel borgen.
Tevens zou ik het fijn vinden als we het response in ieder geval deserialiseren en valideren die de ListStrictRecievePaymentPaths terug geeft:
Dan weten we zeker dat onze modellen in ieder geval compatible zijn.
Goede punten, die maar gelijk het belang van goede tests bevestigen. We kunnen inderdaad wat verder gaan met de tests. Ik heb wel een vraag: Hoe maak je in je eerste scenario die request? De nieuwe Laboratory laat je niet eens verzenden zonder alle required fields in te vullen. Daar staat trouwens nadrukkelijk bij dat de source account required is. Waarom deze in jouw voorbeeld onder de optionele fields staat begrijp ik niet. Ik heb dit in ieder geval proberen te ondervangen door de struct met 3 generics te laten werken (corresponderend met de required fields). Zolang er een generic nog op de default waarde staat (dus bv Het tweede scenario verbaast me. Ik heb dit niet teruggevonden in de documentatie en Laboratory. Dit is wederom waarom we dus testen :) Ik zal dit inderdaad gaan afdekken. Wat betreft je laatste scenario snap ik niet helemaal wat je bedoelt; de methods in de horizon client returnen een |
Ik roep het endpoint hier aan. Hier kan je rechts in je scherm de verplichte parameters invullen, en eventueel optionele parameters (die stiekem verplicht blijken in de juiste combinatie). Hier haal ik ook de response vandaan. Als daar verwarring over is, omdat de modellen uit de laboratory niet overeen komen met deze output, dan kunnen we die eventueel laten zitten. Als het slechts naamgeving is, maar de content klopt met het model, dan kunnen we hier wel mee verder. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Klein cosmetisch dingetje, verder echt top gedaan Kevin!
stellar_rust_sdk/src/paths/mod.rs
Outdated
const SOURCE_ASSET_TYPE: &str = "native"; | ||
const SOURCE_AMOUNT: &str = "100.0000000"; | ||
const DESTINATION_ASSET_TYPE: &str = "native"; | ||
const DESTINATION_AMOUNT: &str = "100.0000000"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Deze zie ik vaker voorbij komen. Wellicht mooier (en praktischer in onderhoud) om dit in de test module 1 keer te definieren en gerbruiken over alle tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ja, daar heb je een punt. Ik had dat bij een ander endpoint ook al een paar keer geprobeerd. Zodra er 1 waarde verandert in de testdatabase moet je 't alsnog uitelkaar trekken. Als dat preferabel is, dan doen we dat gewoon 😃
✨ What kind of change does this PR introduce? (Bug fix, feature, docs update...)
Fixes #53. Adds all endpoints of the paths endpoint group, thereby concluding the implementation of all endpoints.
Notes:
🤔 Checklist before submitting