Hey all, I noticed this evening when reviewing the...
# maintainers
m
Hey all, I noticed this evening when reviewing the .NET Plugin RFC that we don’t actually have a feature in our compatibility suite for Pact Plugins (see https://github.com/pact-foundation/pact-compatibility-suite/issues/7). @Tien Vo I know you’re working through the Pact PHP work here, so just wanted to give you the heads up. We should add those tests. At this stage, we can take that work on toward the end of the Python compatibility suite work that @Joshua Ellis is currently working on, but if you get to it before and want to pick it up just let us know
👍 1
r
Didn't seem much value in adding it. It would be 2 scenarios.
When using a plugin
and
when the plugin is not there
m
I thought it may have been something like that. I think it could be valuable for FFI implementations, because it will test the additional methods that need to be implemented and that would translate to a support table in the future (one of the side effects of doing this is to get an accurate and up-to-date feature matrix across clients). Would appreciate Josh’s/Tien’s view on it though.
j
I haven't gotten to implementing plugins yet through the FFI in Pact Python, so I can't say I'm fully across what's part of the FFI at this stage. For now, I've noticed that there's a
interaction_content
which "sets the interaction part using a plugin", but I have not yet really used that. It might be better if we had a chat so I can understand the context better. In any case, regarding having plugins being tested as part of the compatibility suite, I think this is a must. The compatibility suite should, ideally, test the whole range of uses for Pact.
👍 1
m
Sure, we can discuss when you get to that bit if you like?
t
I implemented csv and protobuf/grpc in pact-php. I'm okay with adding those scenarios to compatibility suites. I assume we need to re-use csv plugin in the scenario
When using a plugin
, or we can create a new
dummy
plugin that do something different so we can compare with the result of the scenario
when the plugin is not there
?
👍 1
m
Just in case it’s not clear - it’s not envisaged that every project needs to have examples of every plugin in use (or tests for them). Simply, we want to make sure that plugins can be used in all of the places they should (HTTP, async, sync interactions [consumer/provider side] + that we support plugins in content types and transports)
I implemented csv and protobuf/grpc in pact-php. I’m okay with adding those scenarios to compatibility suites. I assume we need to re-use csv plugin in the scenario
When using a plugin
, or we can create a new
dummy
plugin that do something different so we can compare with the result of the scenario
when the plugin is not there
?
using gRPC via the protobuf plugin is probably a good choice for the test, because it is both a transport and content-matcher, and it’s something we created and can rely upon
👍 1