Test coverage for event format (#19264)
This commit is contained in:
parent
724ccd5bc4
commit
a4616d7336
|
@ -2,6 +2,7 @@ package http
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -88,10 +89,46 @@ func TestEventsSubscribe(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if testCase.json {
|
if testCase.json {
|
||||||
msgJson := strings.TrimSpace(string(msg))
|
event := map[string]interface{}{}
|
||||||
if !strings.HasPrefix(msgJson, "{") || !strings.HasSuffix(msgJson, "}") {
|
err = json.Unmarshal(msg, &event)
|
||||||
t.Errorf("Expected to get JSON event but got: %v", msgJson)
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
t.Log(string(msg))
|
||||||
|
data := event["data"].(map[string]interface{})
|
||||||
|
if actualType := data["event_type"].(string); actualType != eventType {
|
||||||
|
t.Fatalf("Expeced event type %s, got %s", eventType, actualType)
|
||||||
|
}
|
||||||
|
pluginInfo, ok := data["plugin_info"].(map[string]interface{})
|
||||||
|
if !ok || pluginInfo == nil {
|
||||||
|
t.Fatalf("No plugin_info object: %v", data)
|
||||||
|
}
|
||||||
|
mountPath, ok := pluginInfo["mount_path"].(string)
|
||||||
|
if !ok || mountPath != "secret" {
|
||||||
|
t.Fatalf("Wrong mount_path: %v", data)
|
||||||
|
}
|
||||||
|
innerEvent := data["event"].(map[string]interface{})
|
||||||
|
if innerEvent["id"].(string) != event["id"].(string) {
|
||||||
|
t.Fatalf("IDs don't match, expected %s, got %s", innerEvent["id"].(string), event["id"].(string))
|
||||||
|
}
|
||||||
|
if innerEvent["note"].(string) != "testing" {
|
||||||
|
t.Fatalf("Expected 'testing', got %s", innerEvent["note"].(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
checkRequiredCloudEventsFields(t, event)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func checkRequiredCloudEventsFields(t *testing.T, event map[string]interface{}) {
|
||||||
|
t.Helper()
|
||||||
|
for _, attr := range []string{"id", "source", "specversion", "type"} {
|
||||||
|
if v, ok := event[attr]; !ok {
|
||||||
|
t.Errorf("Missing attribute %s", attr)
|
||||||
|
} else if str, ok := v.(string); !ok {
|
||||||
|
t.Errorf("Expected %s to be string but got %T", attr, v)
|
||||||
|
} else if str == "" {
|
||||||
|
t.Errorf("%s was empty string", attr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue