Closed NicolasAgra closed 1 year ago
"description": null,
is causing the problem. That's a mandatory field. It's unfortunate that it wasn't enforced on the consumer side.
Thanks @bethesque , I added .given
and .upon_receiving
to the missing pact definition and it worked. Maybe we can leave this issue open to catch the error and return a controlled message.
@bethesque when you say enforced on the consumer side, where do you mean?
Having a quick look through, in the pact-python consumer code it's checking for the presence of request/response/description but this check only happens when checking if all fields are present for an interaction, and if so create a new empty interaction on the list (hence the one complete, one incomplete). There isn't a final "make sure the last one is complete before sending".
It would be relatively easy to add in a final check before the PUT /interactions, but I think that would be better on the pact-mock-server, throwing an error rather than 200 / "Registered interactions" - or was that what you meant?
I was thinking the DSL code could raise an error if the description was not provided, but yes, we could put in validation in the mock server. Would just need to make sure the error was shown nicely to the user.
I like the idea of as much as possible coming from one place to avoid dupes and mismatch (re changing default options, new options etc). The pact-python example currently raises an exception with the message if a 200 doesn't come back, so that should be ok-ish to make visible. That said, since description is spec rather than behaviour I suppose that's pretty solidly defined so shouldn't change anyway. Attempted to add in a simple check but having GitHub build weirdness [being flaky, old previously successful builds now failing..sometimes etc] so I'll have to come back to that later!
Thanks @mikegeeves
Hello Folks, I am running into this problem when trying to perform an execution with pact verifier. The input consumer-provider.json was created by pact-python.
Here is the consumer file (I had to add .txt extension in order github let me upload the file) consumer-provider.json.txt