github.com/weaviate/weaviate@v1.24.6/test/helper/assertions.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package helper 13 14 import ( 15 "encoding/json" 16 "reflect" 17 "testing" 18 ) 19 20 // Asserts that the request did not return an error. 21 // Optionally perform some checks only if the request did not fail 22 func AssertRequestOk(t *testing.T, response interface{}, err error, checkFn func()) { 23 t.Helper() 24 if err != nil { 25 responseJson, _ := json.MarshalIndent(response, "", " ") 26 errorPayload, _ := json.MarshalIndent(err, "", " ") 27 t.Fatalf("Failed to perform request! Error: %s %s (Original error %s). Response: %s", getType(err), errorPayload, err, responseJson) 28 } else { 29 if checkFn != nil { 30 checkFn() 31 } 32 } 33 } 34 35 // Asserts that the request _did_ return an error. 36 // Optionally perform some checks only if the request failed 37 func AssertRequestFail(t *testing.T, response interface{}, err error, checkFn func()) { 38 if err == nil { 39 responseJson, _ := json.MarshalIndent(response, "", " ") 40 t.Fatalf("Request succeeded unexpectedly. Response:\n%s", responseJson) 41 } else { 42 if checkFn != nil { 43 checkFn() 44 } 45 } 46 } 47 48 // Get type name of some value, according to https://stackoverflow.com/questions/35790935/using-reflection-in-go-to-get-the-name-of-a-struct 49 func getType(myvar interface{}) string { 50 if t := reflect.TypeOf(myvar); t.Kind() == reflect.Ptr { 51 return "*" + t.Elem().Name() 52 } else { 53 return t.Name() 54 } 55 }