Open vkaramov opened 1 year ago
What version of PactJVM are you using?
Had a look at what the PactSwift's pact structure looks like using your example.
The structure and all seems correct when sending the pact model to pact_ffi
.
Must be an issue in pact_ffi
verifier not honouring the generators
object when verifying the request.
"request": {
"path": "/api/species",
"body": {
"deviceName": "WppxFhJaX3TAhzTKZakW",
"platform": "pqZtJuwTcArF7uGe6L1d",
"platformVersion": "QSb5cMfpGXo8ul3HCpXK",
"language": "ZAjcMhbPXh9LDf9SsE1r",
"application": "JE4FtUcRH4uBDl0x5wu6",
"applicationVersion": "9qrmoscqbYd2cGcUq5FD",
"token": "XcunuysQYixQhGYn1Xdd"
},
"method": "post",
"headers": {
"Content-Type": "application/json"
},
"generators": {
"body": {
"$.platform": {
"type": "RandomString",
"size": 20
},
"$.deviceName": {
"type": "RandomString",
"size": 20
},
"$.token": {
"type": "RandomString",
"size": 20
},
"$.language": {
"type": "RandomString",
"size": 20
},
"$.applicationVersion": {
"type": "RandomString",
"size": 20
},
"$.application": {
"type": "RandomString",
"size": 20
},
"$.platformVersion": {
"type": "RandomString",
"size": 20
}
}
}
},
"response": {
...
Thank you, I'm using Pact JVM 4.3.18.
I'll ask the team working on pact_ffi
about it, but can't necessarily promise anything.
This "might" be fixed with the new PactSwift
version that's currently in the works on a fork.
It will take advantage of Apple's concurrency and will slightly change how the DSL works. As a bit of a background v1 creates a pact model and sends it to pact_ffi
(the Pact business logic/verifier/mock server written in Rust and shared across language implementations). The new PactSwift v2 will send each of the interactions into pact_ffi
via a handler. V2 will essentially shift responsibility into pact_ffi
. So not sure if that will help you with your project.
No timelines for when it will be available though!
@surpher Great, thanks!
❔ Question
I want to use generators in requests like this:
but the test fails with errors like:
To fix that I had to replace
with
Is it possible to use generators like in JVM version?
Compare generated pacts:
PactSwift:
JVM:
💬 Context
Xcode 14.2