github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/telemetry/data_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package telemetry 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestDataToMap(t *testing.T) { 13 // init 14 testData := Data{BaseData: BaseData{ActionName: "testAction"}, CustomData: CustomData{Custom2Label: "label", Custom2: "value"}} 15 // test 16 result := testData.toMap() 17 // assert 18 assert.Contains(t, result, "action_name") 19 assert.Contains(t, result, "event_type") 20 assert.Contains(t, result, "idsite") 21 assert.Contains(t, result, "url") 22 23 assert.Contains(t, result, "e_3") 24 assert.Contains(t, result, "e_4") 25 assert.Contains(t, result, "e_5") 26 assert.Contains(t, result, "e_10") 27 28 assert.Contains(t, result, "custom3") 29 assert.Contains(t, result, "custom4") 30 assert.Contains(t, result, "custom5") 31 assert.Contains(t, result, "custom10") 32 33 assert.Contains(t, result, "e_27") 34 assert.Contains(t, result, "custom27") 35 36 assert.Equal(t, 15, len(result)) 37 } 38 39 func TestDataToPayload(t *testing.T) { 40 t.Run("with single parameter", func(t *testing.T) { 41 // init 42 testData := Data{BaseData: BaseData{ActionName: "testAction"}} 43 // test 44 result := testData.toPayloadString() 45 // assert 46 assert.Contains(t, result, "action_name=testAction") 47 assert.NotContains(t, result, "idsite=") 48 }) 49 50 t.Run("with multiple parameters", func(t *testing.T) { 51 // init 52 testData := Data{BaseData: BaseData{ActionName: "testAction", SiteID: "gl8rkd6j211bw3j1fwb8rb4h0000gn"}} 53 // test 54 result := testData.toPayloadString() 55 // assert 56 assert.Contains(t, result, "&") 57 assert.Contains(t, result, "action_name=testAction") 58 assert.Contains(t, result, "idsite=gl8rkd6j211bw3j1fwb8rb4h0000gn") 59 }) 60 61 t.Run("encoding", func(t *testing.T) { 62 // init 63 testData := Data{BaseData: BaseData{ActionName: "t€štÄçtïøñ"}} 64 // test 65 result := testData.toPayloadString() 66 // assert 67 assert.Contains(t, result, "t%E2%82%AC%C5%A1t%C3%84%C3%A7t%C3%AF%C3%B8%C3%B1") 68 assert.NotContains(t, result, "t€štÄçtïøñ") 69 }) 70 }