summaryrefslogtreecommitdiff
path: root/test/utils/matchers.go
diff options
context:
space:
mode:
authorEd Santiago <santiago@redhat.com>2021-11-30 09:15:44 -0700
committerEd Santiago <santiago@redhat.com>2021-11-30 09:51:06 -0700
commit12787963b04f91a7fec9aa0d6915666e43aeb269 (patch)
treea20496b9a5221c6bd042fd5ad93c46f61a3f228f /test/utils/matchers.go
parent3fac03cf04e68eb3351aff8c33bac6bea85810f6 (diff)
downloadpodman-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.go30
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")
+}