github.com/kubeshop/testkube@v1.17.23/pkg/api/v1/client/common_test.go (about) 1 package client 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "errors" 7 "fmt" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 12 "github.com/kubeshop/testkube/pkg/executor/output" 13 ) 14 15 func TestTrimSSEChunk(t *testing.T) { 16 17 in := []byte(`data: {"type": "error","message": "some message"}\n\n`) 18 out := trimDataChunk(in) 19 20 assert.Equal(t, `{"type": "error","message": "some message"}`, string(out)) 21 } 22 23 // TestStreamToLogsChannelOldErrorFormat parses old output error format and return type field 24 func TestStreamToLogsChannelOldErrorFormat(t *testing.T) { 25 log := make(chan output.Output) 26 in := []byte(`data: {"type": "error", "message": "some message"}` + "\n\n") 27 buf := bytes.NewBuffer(in) 28 29 go StreamToLogsChannel(buf, log) 30 result := <-log 31 assert.Equal(t, output.Output{Type_: "error", Content: ""}, result) 32 } 33 34 // TestStreamToLogsChannelNewErrorFormat parses new output error format and return type and content fields 35 func TestStreamToLogsChannelNewErrorFormat(t *testing.T) { 36 log := make(chan output.Output) 37 out, _ := json.Marshal(output.NewOutputError(errors.New("some message"))) 38 in := []byte(fmt.Sprintf("%s\n", out)) 39 buf := bytes.NewBuffer(in) 40 41 go StreamToLogsChannel(buf, log) 42 result := <-log 43 assert.Equal(t, "error", result.Type_) 44 assert.Equal(t, "some message", result.Content) 45 }