pact-jvm
pact-jvm copied to clipboard
ProviderStateParameters - are defaulting to String
This is still an issue with Pact-JVM too
my consumer tests are written in Pact-JS
it logs the value as the correct type
pact_matching::json: compare_values: Calling match_values for path $.userId pact_matching::json: JSON -> JSON: Comparing '1' to '1' using Type -> Ok(()) pact_matching::json: compare_values: Comparing 'Number(1)' to 'Number(1)' at path '$.userId' -> Ok(())
Pact file created
"generators": {
"body": {
"$.userId": {
"expression": "${userId}",
"type": "ProviderState"
}
}
}
Provider written in Java -> logs
2024-02-26 17:12:18,369 DEBUG ll=DEBUG c=a.c.d.p.p.ProviderClient t=main method: POST
path: /login
query: {}
headers: {Accept=[application/json], Content-Type=[application/json]}
matchers: MatchingRules(rules={body=MatchingRuleCategory(name=body, matchingRules={$.userId=MatchingRuleGroup(rules=[au.com.dius.pact.core.model.matchingrules.TypeMatcher@346330b6], ruleLogic=AND, cascaded=false)}), header=MatchingRuleCategory(name=header, matchingRules={}), path=MatchingRuleCategory(name=path, matchingRules={}), query=MatchingRuleCategory(name=query, matchingRules={})})
generators: Generators(categories={BODY={$.smUserId=ProviderStateGenerator(expression=${smUserId}, dataType=RAW)}})
body: PRESENT({"userId":"829152765"})