- Use a URL that you know the latest
Pact
will be made available at. - Do not rely on manual intervention (eg. someone copying a file across to the
Provider
project) because this process will inevitably break down, and your verification task will give you a false positive. - Do not try to "protect" your build from being broken by instigating a manual pact update process.
pact:verify
is the canary of your integration - manual updates would be like giving your canary a gas mask.
It should run with all your other tests.
If you don't have to stub anything in the Provider
when running pact:verify
, then don't.
If you do need to stub something (eg. a downstream system), make sure that you only stub the code that gets executed after the contents of the request body have been extracted and validated. Otherwise, you could send any old garbage in a POST
or PUT
body, and no test would fail.
Consider making a separate Pact
with the downstream system and using shared fixtures.