How might you write a matcher to check both the keys and values and the same time (use eachKeyMatches and eachValueMatches simultaneously):
enum Keys {
One = "One",
Two = "Two",
}
interface Value {
min: number
max: number
}
type R = Record<Keys, Value>
const record: R = {
[Keys.One]:
{
min: 1,
max: 2
}
}
it("check record", async () => {
messagePact
.expectsToReceive("record")
.withContent({
// What need to write here to check type R ?
})
})
In some cases, you need to apply multiple matchers to a field in order to properly validate it. Only Pact JVM currently supports this behaviour.
The capability to combine matching rules will be enabled in the next release (
v0.4.19
), but the clients will need to update their DSLs to support it.Motivating Use Case
From a request in slack.
How might you write a matcher to check both the keys and values and the same time (use
eachKeyMatches
andeachValueMatches
simultaneously):Proposed API to support this
TBC
Background: https://github.com/pact-foundation/pact-reference/issues/399#issuecomment-2024081745