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  }