github.com/kubeshop/testkube@v1.17.23/pkg/logs/state/state_test.go (about)

     1  package state
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/nats-io/nats.go/jetstream"
     8  	"github.com/stretchr/testify/assert"
     9  
    10  	"github.com/kubeshop/testkube/pkg/event/bus"
    11  )
    12  
    13  func TestState(t *testing.T) {
    14  
    15  	ns, nc := bus.TestServerWithConnection()
    16  	defer ns.Shutdown()
    17  
    18  	ctx := context.Background()
    19  
    20  	js, err := jetstream.New(nc)
    21  	assert.NoError(t, err)
    22  
    23  	kv, err := js.CreateKeyValue(ctx, jetstream.KeyValueConfig{Bucket: "test-logsstae-bucket"})
    24  	assert.NoError(t, err)
    25  
    26  	s := NewState(kv)
    27  
    28  	t.Run("get non existing state", func(t *testing.T) {
    29  		state1, err := s.Get(ctx, "1")
    30  		assert.NoError(t, err)
    31  		assert.Equal(t, LogStateUnknown, state1)
    32  	})
    33  
    34  	t.Run("store state data and get it", func(t *testing.T) {
    35  		err = s.Put(ctx, "1", LogStateFinished)
    36  		assert.NoError(t, err)
    37  
    38  		state1, err := s.Get(ctx, "1")
    39  		assert.NoError(t, err)
    40  		assert.Equal(t, LogStateFinished, state1)
    41  	})
    42  
    43  }