feat([PoC]): Contract for sequence of messages. #21
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.
📓 This PR is just a PoC on how to use Pact for a sequence of messages in a single test iteration. However, this approach is opposite to Consumer-driven Contract Testing (CDC), because is test should be as much simple as possible to test only one iteration (request-response) at a time.
When a Consumer expects a few messages in one test iteration current Pact is keeping only the last message in Contract, this modification makes Pact keeps all messages in Contract.
Contract:
{ "consumer": { "name": "Test Message Consumer" }, "provider": { "name": "Test Message Producer" }, "messages": [ { "description": "created;updated", "providerStates": [ { "name": "Class1", "params": { } }, { "name": "Class2", "params": { } } ], "contents": [ { "first_name": "John", "last_name": "Doe" }, { "hello": "world" } ], "matchingRules": { } } ], "metadata": { "pactSpecification": { "version": "2.0.0" } } }See demo: AndrewJanuary/pact-ruby-demo#1