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 }