approvals: use go-cmp instead of gojsondiff #2968
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While working on #2839, I found that large maps with many differences would lead to gojsondiff causing tests to churn CPU and eventually time out. This PR replaces use of gojsondiff with go-cmp, which has no such issues.
There is one functional difference: if the approval file is missing, we now compare the received JSON with
null
rather than{}
. This is to cater for some uses of ApproveEvents with nil maps. Whereasgojsondiff
will produce no diff when comparing nil and empty maps, go-cmp will. This is why some approval files have been added.