feat: add consumer version selectors and pending pacts to verification #217
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements consumer version selectors (see pact-foundation/pact_broker#307) and pending pacts (see ).
The biggest complication here is that the selectors are specified as JSON strings on the CLI - not something we're well prepared for.
In terms of design options I had a few, most notably:
verifier.ts
to do the JSON marshaling, but that then meant I needed to do nasty things to hide the true option that is passed to theArguments
class.SpawnArguments
type to signal that certain properties were basic "string" values vs "JSON" values - but decided against that large refactor.I also updated the types in
Arguments
because the values were set as strings, but that is actually an illusion - in reality they are an interface type (SpawnArguments
), that could have values as primitives (strings, numbers etc.) or in this new case - an interface.This was a fairly simple change, but I was concerned about making that class any more complicated, so we may want to revert it.