github.com/rudderlabs/rudder-go-kit@v0.30.0/testhelper/docker/resource/etcd/etcd_test.go (about)

     1  package etcd
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/ory/dockertest/v3"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  const (
    12  	dummyKey   = "dummyKey"
    13  	dummyValue = "dummyValue"
    14  )
    15  
    16  func TestETCD(t *testing.T) {
    17  	pool, err := dockertest.NewPool("")
    18  	require.NoError(t, err)
    19  
    20  	etcdRes, err := Setup(pool, t)
    21  	require.NoError(t, err)
    22  
    23  	getResp, err := etcdRes.Client.Get(context.Background(), dummyKey) // no value should be present during start
    24  	require.NoError(t, err)
    25  
    26  	require.Zero(t, getResp.Kvs)
    27  
    28  	_, err = etcdRes.Client.Put(context.Background(), dummyKey, dummyValue) // put value in to dummyKey
    29  	require.NoError(t, err)
    30  
    31  	getResp, err = etcdRes.Client.Get(context.Background(), dummyKey) // check value in dummyKey
    32  	require.NoError(t, err)
    33  	require.Len(t, getResp.Kvs, 1)
    34  	require.Equal(t, string(getResp.Kvs[0].Value), dummyValue)
    35  }