github.com/kubeshop/testkube@v1.17.23/pkg/executor/output/writer_test.go (about)

     1  package output
     2  
     3  import (
     4  	"bytes"
     5  	"encoding/json"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  
    10  	"github.com/kubeshop/testkube/pkg/executor/env"
    11  )
    12  
    13  func TestJSONWrapWritter(t *testing.T) {
    14  
    15  	t.Run("test if output is wrapped correctly", func(t *testing.T) {
    16  
    17  		buff := bytes.NewBuffer([]byte(""))
    18  
    19  		writer := NewJSONWrapWriter(buff, env.NewManager())
    20  		line1 := "some log line"
    21  		_, err := writer.Write([]byte(line1))
    22  		assert.NoError(t, err)
    23  		line2 := "second log line"
    24  		_, err = writer.Write([]byte(line2))
    25  		assert.NoError(t, err)
    26  		line3 := "second log line"
    27  		_, err = writer.Write([]byte(line3))
    28  		assert.NoError(t, err)
    29  		lines := bytes.Split(buff.Bytes(), []byte("\n"))
    30  
    31  		var output Output
    32  		err = json.Unmarshal(lines[0], &output)
    33  		assert.NoError(t, err)
    34  		assert.Equal(t, line1, output.Content)
    35  		assert.Equal(t, TypeLogLine, output.Type_)
    36  
    37  		err = json.Unmarshal(lines[1], &output)
    38  		assert.NoError(t, err)
    39  		assert.Equal(t, line2, output.Content)
    40  		assert.Equal(t, TypeLogLine, output.Type_)
    41  
    42  		err = json.Unmarshal(lines[2], &output)
    43  		assert.NoError(t, err)
    44  		assert.Equal(t, line3, output.Content)
    45  		assert.Equal(t, TypeLogLine, output.Type_)
    46  
    47  	})
    48  
    49  }