pact-foundation / pact-go

Golang version of Pact. Pact is a contract testing framework for HTTP APIs and non-HTTP asynchronous messaging systems.
http://pact.io
MIT License
857 stars 108 forks source link

RequestFilter no longer called for HTTP #254

Closed jasonltaylor closed 1 year ago

jasonltaylor commented 1 year ago

Software versions

Expected behaviour

RequestFilter set in VerifyRequest called during provider state verification. This was working with beta 15.

Ideally, since gRPC is an HTTP based protocol it would be nice if we could still pass an HTTP filter to inject headers but realize that may not be possible with the plugin framework.

Actual behaviour

Request filter code not being called causing tests to fail.

Steps to reproduce

I pretty much copied this code to inject a bearer token which is no longer getting called in beta 17: https://github.com/pact-foundation/pact-go/blob/063ec5c8260769205638c7b3dd07d0ac6ad8088d/examples/mux/provider/user_service_test.go#L75

One other bit that may be relevant - I standup up my service in a container (providerBaseUrl points to a different host/IP) so the go provider test is a separate process. Not sure if that is relevant or not. I did not try to reproduce this with a single test binary serving as the providerBaseUrl and request filter.

Relevent log files

Please ensure you set logging to DEBUG and attach any relevant log files here (or link from a gist).

mefellows commented 1 year ago

Thanks for raising, i'll look into this now.