diff options
author | Ed Santiago <santiago@redhat.com> | 2021-11-30 09:15:44 -0700 |
---|---|---|
committer | Ed Santiago <santiago@redhat.com> | 2021-11-30 09:51:06 -0700 |
commit | 12787963b04f91a7fec9aa0d6915666e43aeb269 (patch) | |
tree | a20496b9a5221c6bd042fd5ad93c46f61a3f228f /test/utils/matchers.go | |
parent | 3fac03cf04e68eb3351aff8c33bac6bea85810f6 (diff) | |
download | podman-12787963b04f91a7fec9aa0d6915666e43aeb269.tar.gz podman-12787963b04f91a7fec9aa0d6915666e43aeb269.tar.bz2 podman-12787963b04f91a7fec9aa0d6915666e43aeb269.zip |
e2e tests: more cleanup of BeTrue()s
Write a BeValidJSON() matcher, and replace IsJSONOutputValid():
sed -i -e 's/Expect(\(.*\)\.IsJSONOutputValid()).To(BeTrue())/Expect(\1.OutputToString())\.To(BeValidJSON())/' test/e2e/*_test.go
(Plus a few manual tweaks)
Signed-off-by: Ed Santiago <santiago@redhat.com>
Diffstat (limited to 'test/utils/matchers.go')
-rw-r--r-- | test/utils/matchers.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/utils/matchers.go b/test/utils/matchers.go index 69fb0cdfe..59436a3ab 100644 --- a/test/utils/matchers.go +++ b/test/utils/matchers.go @@ -1,6 +1,7 @@ package utils import ( + "encoding/json" "fmt" "net/url" @@ -166,3 +167,32 @@ func (matcher *ExitMatcher) MatchMayChangeInTheFuture(actual interface{}) bool { } return true } + +type validJSONMatcher struct { + types.GomegaMatcher +} + +func BeValidJSON() *validJSONMatcher { + return &validJSONMatcher{} +} + +func (matcher *validJSONMatcher) Match(actual interface{}) (success bool, err error) { + s, ok := actual.(string) + if !ok { + return false, fmt.Errorf("validJSONMatcher expects a string, not %q", actual) + } + + var i interface{} + if err := json.Unmarshal([]byte(s), &i); err != nil { + return false, nil + } + return true, nil +} + +func (matcher *validJSONMatcher) FailureMessage(actual interface{}) (message string) { + return format.Message(actual, "to be valid JSON") +} + +func (matcher *validJSONMatcher) NegatedFailureMessage(actual interface{}) (message string) { + return format.Message(actual, "to _not_ be valid JSON") +} |