package api import ( "encoding/json" "fmt" "reflect" ) // Helper function that normalizes structs for comparison with reflect.DeepEqual func normalize(v interface{}) { j, err := json.Marshal(v) if err != nil { panic(fmt.Sprintf("Could not normalize object %+v due to JSON marshalling error: %s", v, err)) } err = json.Unmarshal(j, v) if err != nil { panic(fmt.Sprintf("Could not normalize object %+v due to JSON un-marshalling error: %s", v, err)) } } func normalizeDeepEqual(u, v interface{}) bool { normalize(u) normalize(v) return reflect.DeepEqual(u, v) }