github.com/kubeshop/testkube@v1.17.23/pkg/telemetry/sender_sio_test.go (about) 1 package telemetry 2 3 import ( 4 "net/http" 5 "testing" 6 "time" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestMapParams(t *testing.T) { 12 // given 13 payload := Payload{ 14 UserID: "u1", 15 ClientID: "c1", 16 Events: []Event{ 17 { 18 Name: "e1", 19 Params: Params{ 20 AppName: "testkube-api", 21 AppVersion: "v1.0.0", 22 Architecture: "amd64", 23 OperatingSystem: "linux", 24 MachineID: "mid1", 25 ClusterID: "cid1", 26 EventCategory: "command", 27 Host: "local", 28 DataSource: "git-dir", 29 TestType: "postman/collection", 30 DurationMs: 100, 31 Status: "failed", 32 TestSource: "main", 33 TestSuiteSteps: 5, 34 ClusterType: "local", 35 }, 36 }, 37 }, 38 } 39 40 // when 41 track := mapEvent(payload.UserID, payload.Events[0]) 42 43 // then 44 assert.Equal(t, "testkube-api", track.Properties["name"]) 45 assert.Equal(t, "v1.0.0", track.Properties["version"]) 46 assert.Equal(t, "amd64", track.Properties["arch"]) 47 assert.Equal(t, "linux", track.Properties["os"]) 48 assert.Equal(t, "cid1", track.Properties["clusterId"]) 49 assert.Equal(t, "mid1", track.Properties["machineId"]) 50 assert.Equal(t, "command", track.Properties["eventCategory"]) 51 assert.Equal(t, "local", track.Properties["host"]) 52 assert.Equal(t, "git-dir", track.Properties["dataSource"]) 53 assert.Equal(t, "postman/collection", track.Properties["testType"]) 54 assert.Equal(t, int32(100), track.Properties["durationMs"]) 55 assert.Equal(t, "failed", track.Properties["status"]) 56 assert.Equal(t, "main", track.Properties["testSource"]) 57 assert.Equal(t, int32(5), track.Properties["testSuiteSteps"]) 58 assert.Equal(t, "local", track.Properties["clusterType"]) 59 } 60 61 func TestSegmentioSender(t *testing.T) { 62 t.Skip("for debug only, to check if real events are getting into Segment.io") 63 64 // given 65 payload := Payload{ 66 UserID: "u1", 67 ClientID: "c1", 68 Events: []Event{ 69 { 70 Name: "kubectl testkube run test", 71 Params: Params{ 72 AppName: "testkube-api", 73 AppVersion: "v1.0.0", 74 Architecture: "amd64", 75 OperatingSystem: "linux", 76 MachineID: "mid1", 77 ClusterID: "cid1", 78 EventCategory: "command", 79 Host: "local", 80 DataSource: "git-dir", 81 TestType: "postman/collection", 82 DurationMs: 100, 83 Status: "failed", 84 TestSource: "main", 85 TestSuiteSteps: 5, 86 ClusterType: "local", 87 }, 88 }, 89 }, 90 } 91 92 // when 93 out, err := SegmentioSender(http.DefaultClient, payload) 94 95 time.Sleep(100 * time.Millisecond) 96 97 // then 98 assert.NoError(t, err) 99 assert.Equal(t, "", out) 100 t.Fail() 101 102 }