diff --git a/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverter.groovy b/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverter.groovy index 4f1b7df1cc..2060abdd65 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverter.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverter.groovy @@ -269,7 +269,7 @@ class PactContractConverter implements ContractConverter { protected Map> matchingRules(BodyMatchers bodyMatchers) { return bodyMatchers.jsonPathMatchers().collectEntries { MatchingType matchingType = it.matchingType() - String key = it.path() + String key = "\$.body${it.path().startsWith('$') ? it.path().substring(1) : it.path()}" Object value = it.value() Integer minTypeOccurrence = it.minTypeOccurrence() Integer maxTypeOccurrence = it.maxTypeOccurrence() diff --git a/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy index 741e4d80e7..0f6a5529b4 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-spec-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy @@ -151,11 +151,11 @@ class PactContractConverterSpec extends Specification { "something": "foo" }, "matchingRules": { - "$.id": { + "$.body.id": { "match": "regex", "regex": "[0-9]{3}" }, - "$.something": { + "$.body.something": { "match": "equality" } } @@ -176,22 +176,22 @@ class PactContractConverterSpec extends Specification { ] ], "matchingRules": { - "$[0][*].email": { + "$.body[0][*].email": { "match": "type" }, - "$[0][*].id": { + "$.body[0][*].id": { "match": "regex", "regex": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" }, - "$[0]": { + "$.body[0]": { "match": "type", "min": 1, "max": 5 }, - "$[0][*].userName": { + "$.body[0][*].userName": { "match": "type" }, - "$[0][*].something": { + "$.body[0][*].something": { "match": "equality" } }