...

Source file src/github.com/launchdarkly/go-server-sdk-redis-redigo/v2/redis_big_segments_test.go

Documentation: github.com/launchdarkly/go-server-sdk-redis-redigo/v2

     1  package ldredis
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/launchdarkly/go-server-sdk/v6/subsystems"
     8  	"github.com/launchdarkly/go-server-sdk/v6/testhelpers/storetest"
     9  
    10  	r "github.com/gomodule/redigo/redis"
    11  	"github.com/stretchr/testify/require"
    12  )
    13  
    14  func TestBigSegmentStore(t *testing.T) {
    15  	client, err := r.DialURL(redisURL)
    16  	require.NoError(t, err)
    17  	defer client.Close()
    18  
    19  	setTestMetadata := func(prefix string, metadata subsystems.BigSegmentStoreMetadata) error {
    20  		if prefix == "" {
    21  			prefix = DefaultPrefix
    22  		}
    23  		_, err := client.Do("SET", bigSegmentsSyncTimeKey(prefix), fmt.Sprintf("%d", metadata.LastUpToDate))
    24  		return err
    25  	}
    26  
    27  	setTestSegments := func(prefix string, contextHashKey string, included []string, excluded []string) error {
    28  		if prefix == "" {
    29  			prefix = DefaultPrefix
    30  		}
    31  		for _, inc := range included {
    32  			_, err := client.Do("SADD", bigSegmentsIncludeKey(prefix, contextHashKey), inc)
    33  			if err != nil {
    34  				return err
    35  			}
    36  		}
    37  		for _, exc := range excluded {
    38  			_, err := client.Do("SADD", bigSegmentsExcludeKey(prefix, contextHashKey), exc)
    39  			if err != nil {
    40  				return err
    41  			}
    42  		}
    43  		return nil
    44  	}
    45  
    46  	storetest.NewBigSegmentStoreTestSuite(
    47  		func(prefix string) subsystems.ComponentConfigurer[subsystems.BigSegmentStore] {
    48  			return BigSegmentStore().Prefix(prefix)
    49  		},
    50  		clearTestData,
    51  		setTestMetadata,
    52  		setTestSegments,
    53  	).Run(t)
    54  }
    55  

View as plain text