assert-json-diff icon indicating copy to clipboard operation
assert-json-diff copied to clipboard

Feature Request: assert that key is present but ignore value

Open naamancurtis opened this issue 4 years ago • 3 comments

I was wondering if you'd be open to including some kind of flag within the macro that indicates that it should check that the key exists, but ignores the value (or just accepts any value).

The main reason for doing this would be for values such as decimals where checking for exact equality isn't likely to work eg:

json atoms at path ".price" are not equal:
    expected:
        2.97
    actual:
        2.9699999999999998

naamancurtis avatar Dec 06 '20 17:12 naamancurtis

In those cases I usually try and access the element with something like json["foo"]["bar"][1337] without any assertions since that'll panic if the key isn't there. Of course not as elegant but without a custom json! macro I don't think a better solution is possible.

A custom json! macro would also be needed to fix https://github.com/davidpdrsn/assert-json-diff/issues/8 so at least there is two use cases now.

davidpdrsn avatar Dec 06 '20 19:12 davidpdrsn

I'd love this too :)

angristan avatar Jun 11 '21 10:06 angristan

JsonUnit for Java has some good features related to this that may inspire you :) You can use values like ${json-unit.any-number} ${json-unit.any-string} ${json-unit-ignore} regex and so on....

GrandmasterTash avatar Jan 07 '22 11:01 GrandmasterTash