...

Source file src/github.com/launchdarkly/go-server-sdk/v6/testhelpers/ldservices/server_sdk_data_test.go

Documentation: github.com/launchdarkly/go-server-sdk/v6/testhelpers/ldservices

     1  package ldservices
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestFlagOrSegment(t *testing.T) {
    11  	f := FlagOrSegment("my-key", 2)
    12  	bytes, err := json.Marshal(f)
    13  	assert.NoError(t, err)
    14  	assert.JSONEq(t, `{"key":"my-key","version":2}`, string(bytes))
    15  }
    16  
    17  func TestEmptyServerSDKData(t *testing.T) {
    18  	expectedJSON := `{"flags":{},"segments":{}}`
    19  	data := NewServerSDKData()
    20  	bytes, err := json.Marshal(data)
    21  	assert.NoError(t, err)
    22  	assert.JSONEq(t, expectedJSON, string(bytes))
    23  }
    24  
    25  func TestSDKDataWithFlagsAndSegments(t *testing.T) {
    26  	flag1 := FlagOrSegment("flagkey1", 1)
    27  	flag2 := FlagOrSegment("flagkey2", 2)
    28  	segment1 := FlagOrSegment("segkey1", 3)
    29  	segment2 := FlagOrSegment("segkey2", 4)
    30  	data := NewServerSDKData().Flags(flag1, flag2).Segments(segment1, segment2)
    31  
    32  	expectedJSON := `{
    33  		"flags": {
    34  			"flagkey1": {
    35  				"key": "flagkey1",
    36  				"version": 1
    37  			},
    38  			"flagkey2": {
    39  				"key": "flagkey2",
    40  				"version": 2
    41  			}
    42  		},
    43  		"segments": {
    44  			"segkey1": {
    45  				"key": "segkey1",
    46  				"version": 3
    47  			},
    48  			"segkey2": {
    49  				"key": "segkey2",
    50  				"version": 4
    51  			}
    52  		}
    53  	}`
    54  	bytes, err := json.Marshal(data)
    55  	assert.NoError(t, err)
    56  	assert.JSONEq(t, expectedJSON, string(bytes))
    57  }
    58  

View as plain text