Closed
Description
Pact Matcher for objects with dynamic keys
My use case is pretty specific but i feel like it might be common.
I have an systemMessage object that has a very consistent schema that i defined like this
export const systemMessage = {
id: like(123456),
message: like('some text here'),
priority: term({
matcher: 'LOW|MEDIUM|HIGH|CRITICAL',
generate: 'HIGH'
}),
destination: term({
matcher: 'EVERYWHERE|SOMEWHERE|ELSEWHERE',
generate: 'EVERYWHERE'
})
};
I return a very high volume of these objects and to simplify my render process I use a hash where each message is keyed by it's ID.
const systemMessages = {
123456: MessageWithID123456
....
}
Since the objects contained in the hash are of a specific type I would like a function akin to eachLike
for objects that simply validates that the values in the object conform to the pattern above and ignores the keys.
{
systemMessages: objectLike({
id: like(123456),
message: like('some text here'),
priority: term({
matcher: 'LOW|MEDIUM|HIGH|CRITICAL',
generate: 'HIGH'
}),
destination: term({
matcher: 'EVERYWHERE|CMS',
generate: 'EVERYWHERE'
})
})
}
I'm including a link to the react-immutable-proptypes project. They have a function called ImmutablePropTypes.mapOf()
which does what I described.
https://github.com/HurricaneJames/react-immutable-proptypes#api
Metadata
Metadata
Assignees
Labels
No labels