in ops/ops.go [103:143]
func (o Operative) ContainsJsonValue(assertion JsonAssertionFunc) *testerror.Error {
if err := isErrorOrNotExist(o); err != nil {
return err
}
if o.Actual == nil || o.Actual == "" {
return testerror.Newf(
"%s: is empty",
o.Reference,
)
}
actual, actualok := o.Actual.(string)
if !actualok {
return testerror.Newf(
"%s: value is not a string",
o.Reference,
)
}
j := json.RawMessage(actual)
assertok, err := assertion(j)
if err != nil {
return testerror.Newf(
"%s: asserting value for %q: %+v",
o.Reference,
o.Actual,
err,
)
}
if assertok == nil || !*assertok {
return testerror.Newf(
"%s: assertion failed for %q",
o.Reference,
o.Actual,
)
}
return nil
}