Harris Lee
05/23/2022, 3:17 AMMatt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Harris Lee
05/23/2022, 3:40 AMMatt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Yousaf Nabi (pactflow.io)
Not currently tested, please feel free to help contribute or let us know if you want to see it!I’ve not used gQL for some years now on a project. On gQL -> OpenAPI https://github.com/schwer/graphql-to-openapi On the OpenAPI -> gQL, I have seen https://github.com/IBM/openapi-to-graphql Wonder if they might be worth having a play around with? Open to contributions to the pact-msw-adapter 🙌🏻
Matt (pactflow.io / pact-js / pact-go)
string
, so now we have zero confidence that a given consumer query is compatible with a given provider (the other way around is much easier, as IBM have discovered)Matt (pactflow.io / pact-js / pact-go)
query scalarQuery (
$input: String!,
$otherInput: String!
) {
arrayOfStrings(input: $input, otherInput: $otherInput)
}
Is type as a string
in the OAS. So now any non-empty query will pass a contract test, because it will satisfy string
Harris Lee
05/27/2022, 12:07 AMconsumer
generate Pact using MSW adator, provider
write provider side like CDCT and compare consumer generated pact.
the reason I want to do that is reusability from unit testing + contract in consumer side. so people easy to use
do you think it is good idea or not much getting benefit?Matt (pactflow.io / pact-js / pact-go)
Yousaf Nabi (pactflow.io)
Harris Lee
05/27/2022, 12:30 AMYousaf Nabi (pactflow.io)
jest-pact
/ mocha-pact
dependant on your framework, or use pact-js
directly, which is test framework agnostic, and you can use with whichever framework you are using.Matt (pactflow.io / pact-js / pact-go)
Harris Lee
05/27/2022, 12:31 AMHarris Lee
05/27/2022, 12:31 AMYousaf Nabi (pactflow.io)
pact-js
with convenience options for jest. so you should be able to follow this post https://pactflow.io/blog/contract-testing-a-graphql-api/Yousaf Nabi (pactflow.io)
Harris Lee
05/27/2022, 12:33 AMprovider.addInteraction({
state: "Server is healthy",
uponReceiving: 'A request for API health',
willRespondWith: {
status: 200,
body: {
status: Matchers.like('up'),
},
},
withRequest: {
method: 'POST',
path: '/graphql',
},
})
Harris Lee
05/27/2022, 12:33 AMwithQuery
withVariable
right?Yousaf Nabi (pactflow.io)
Yousaf Nabi (pactflow.io)
Harris Lee
05/27/2022, 12:36 AM