Pact: How do I match an object whose keys match a regular expression?

1.7k views Asked by At

I am trying to write a pact consumer test to match the following response.

[
  {
      "accountId" : 1,
      "permissions" : [
         {
            "schedule" : {
               "01/01/2018" : false,
               "01/01/1900" : true
            },
            "permissionId" : 3
         }
      ]
   }
]

Each schedule object is composed of an unknown number of keys which match a simple regular expression. But I don't see a way to match a key using a regular expression while having the value map to a simple boolean.

For instance, I see the following method in the API.

public LambdaDslObject eachKeyLike(
        String exampleKey,
        Consumer<LambdaDslObject> nestedObject)

But that is going to expect a new object as the value, instead of a primitive type.

"schedule" : {
  "01/01/2018" : { ... },    // not what I want to match
  "01/01/1900" : false       // what I want to match
}

Is there a way to specify an imprecise key mapped to a primitive value in pact-jvm?

1

There are 1 answers

1
Beth Skurrie On BEST ANSWER

Sorry, this feature doesn't exist yet, but it's been discussed for the next version of the pact specification. You can add your thoughts on this issue: https://github.com/pact-foundation/pact-specification/issues/47