diff --git a/feature_flags_test.go b/feature_flags_test.go index 5df81ba..a55320d 100644 --- a/feature_flags_test.go +++ b/feature_flags_test.go @@ -507,7 +507,7 @@ func TestFeatureFlagsDontFallbackToDecideWhenOnlyLocalEvaluationIsTrue(t *testin }, ) - if matchedPayload != nil { + if matchedPayload != "" { t.Error("Should not match") } @@ -642,7 +642,7 @@ func TestFeatureFlagNullComeIntoPlayOnlyWhenDecideErrorsOut(t *testing.T) { }, ) - if matchedPayload != nil { + if matchedPayload != "" { t.Error("Should not match") } @@ -3326,32 +3326,32 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { }) defer client.Close() - results := []interface{}{ + results := []string{ "{\"test\": 2}", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 4}", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", @@ -3359,110 +3359,110 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 3}", - nil, + "", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 4}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 3}", - nil, - nil, - nil, - nil, - nil, - nil, + "", + "", + "", + "", + "", + "", "{\"test\": 1}", "{\"test\": 5}", - nil, + "", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 3}", "{\"test\": 3}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", "{\"test\": 3}", - nil, + "", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, - nil, - nil, - nil, - nil, - nil, - nil, + "", + "", + "", + "", + "", + "", + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", @@ -3472,97 +3472,97 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 3}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 1}", - nil, - nil, - nil, - nil, - nil, - nil, - nil, + "", + "", + "", + "", + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 5}", "{\"test\": 2}", - nil, + "", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 5}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 4}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 2}", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, - nil, - nil, + "", + "", + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 2}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 2}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", @@ -3575,100 +3575,100 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 3}", - nil, + "", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 5}", "{\"test\": 1}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 2}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", - nil, + "", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 5}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 3}", - nil, + "", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 4}", "{\"test\": 4}", "{\"test\": 3}", @@ -3676,210 +3676,210 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 5}", - nil, + "", "{\"test\": 1}", "{\"test\": 5}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 2}", "{\"test\": 5}", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 2}", - nil, - nil, + "", + "", "{\"test\": 3}", - nil, + "", "{\"test\": 2}", "{\"test\": 5}", - nil, + "", "{\"test\": 3}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 4}", - nil, - nil, + "", + "", "{\"test\": 2}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 4}", "{\"test\": 1}", "{\"test\": 2}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 2}", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 5}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 4}", "{\"test\": 1}", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 3}", - nil, + "", "{\"test\": 4}", "{\"test\": 5}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 3}", "{\"test\": 3}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 3}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 3}", "{\"test\": 4}", "{\"test\": 4}", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 3}", - nil, + "", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 3}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 4}", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 4}", - nil, + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 4}", - nil, + "", "{\"test\": 1}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 2}", @@ -3887,11 +3887,11 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", @@ -3904,18 +3904,18 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 4}", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 4}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 4}", - nil, - nil, + "", + "", "{\"test\": 3}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 3}", @@ -3923,95 +3923,95 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", - nil, - nil, - nil, - nil, - nil, + "", + "", + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 2}", - nil, - nil, + "", + "", "{\"test\": 5}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", "{\"test\": 1}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 4}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 2}", @@ -4019,196 +4019,196 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", - nil, - nil, - nil, - nil, - nil, - "{\"test\": 1}", - nil, - nil, - nil, - nil, - nil, - "{\"test\": 1}", - nil, + "", + "", + "", + "", + "", + "{\"test\": 1}", + "", + "", + "", + "", + "", + "{\"test\": 1}", + "", "{\"test\": 2}", - nil, - nil, - nil, - nil, + "", + "", + "", + "", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 3}", - nil, + "", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, - nil, - nil, - nil, + "", + "", + "", + "", + "", "{\"test\": 2}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", - nil, - nil, - nil, - nil, - nil, + "", + "", + "", + "", + "", "{\"test\": 1}", "{\"test\": 2}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 5}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 2}", - nil, - nil, - nil, - nil, - nil, + "", + "", + "", + "", + "", "{\"test\": 4}", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 2}", - nil, + "", "{\"test\": 2}", - nil, + "", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 5}", - nil, + "", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 5}", - nil, - nil, + "", + "", "{\"test\": 3}", - nil, + "", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 3}", - nil, - "{\"test\": 1}", - nil, - nil, - nil, - nil, - nil, - "{\"test\": 1}", - nil, - nil, - nil, - nil, + "", + "{\"test\": 1}", + "", + "", + "", + "", + "", + "{\"test\": 1}", + "", + "", + "", + "", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 1}", - nil, + "", "{\"test\": 5}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 4}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 4}", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", "{\"test\": 3}", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", "{\"test\": 3}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", - nil, - nil, + "", + "", "{\"test\": 2}", - nil, + "", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 5}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", "{\"test\": 5}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", @@ -4217,70 +4217,70 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 1}", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 2}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, - nil, - nil, - nil, - nil, + "", + "", + "", + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", "{\"test\": 3}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", - nil, + "", "{\"test\": 2}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 2}", - nil, + "", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", "{\"test\": 5}", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 4}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 5}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 2}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 2}", @@ -4291,46 +4291,45 @@ func TestMultivariateFlagConsistencyPayload(t *testing.T) { "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 1}", - nil, + "", "{\"test\": 2}", - nil, - nil, + "", + "", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 3}", - nil, + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 1}", "{\"test\": 1}", - nil, - nil, - nil, + "", + "", + "", "{\"test\": 1}", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 1}", "{\"test\": 1}", "{\"test\": 1}", - nil, + "", "{\"test\": 3}", "{\"test\": 2}", "{\"test\": 3}", - nil, - nil, + "", + "", "{\"test\": 3}", "{\"test\": 1}", - nil, + "", "{\"test\": 1}", } for i := 0; i < 1000; i++ { - variant, _ := client.GetFeatureFlagPayload( FeatureFlagPayload{ Key: "multivariate-flag", diff --git a/featureflags.go b/featureflags.go index 6f3db6b..ab8d6b6 100644 --- a/featureflags.go +++ b/featureflags.go @@ -237,7 +237,7 @@ func (poller *FeatureFlagsPoller) GetFeatureFlag(flagConfig FeatureFlagPayload) return result, err } -func (poller *FeatureFlagsPoller) GetFeatureFlagPayload(flagConfig FeatureFlagPayload) (interface{}, error) { +func (poller *FeatureFlagsPoller) GetFeatureFlagPayload(flagConfig FeatureFlagPayload) (string, error) { flag, err := poller.getFeatureFlag(flagConfig) var variant interface{} @@ -266,13 +266,13 @@ func (poller *FeatureFlagsPoller) GetFeatureFlagPayload(flagConfig FeatureFlagPa if (variant == nil || err != nil) && !flagConfig.OnlyEvaluateLocally { result, err := poller.getFeatureFlagPayload(flagConfig.Key, flagConfig.DistinctId, flagConfig.Groups, flagConfig.PersonProperties, flagConfig.GroupProperties) if err != nil { - return nil, err + return "", err } return result, nil } - return nil, errors.New("unable to compute flag locally") + return "", errors.New("unable to compute flag locally") } func (poller *FeatureFlagsPoller) getFeatureFlag(flagConfig FeatureFlagPayload) (FeatureFlag, error) { @@ -1005,10 +1005,10 @@ func (poller *FeatureFlagsPoller) getFeatureFlagVariant(featureFlag FeatureFlag, return result, nil } -func (poller *FeatureFlagsPoller) getFeatureFlagPayload(key string, distinctId string, groups Groups, personProperties Properties, groupProperties map[string]Properties) (interface{}, error) { +func (poller *FeatureFlagsPoller) getFeatureFlagPayload(key string, distinctId string, groups Groups, personProperties Properties, groupProperties map[string]Properties) (string, error) { featureFlagVariants, err := poller.getFeatureFlagVariants(distinctId, groups, personProperties, groupProperties) if err != nil { - return nil, err + return "", err } return featureFlagVariants.FeatureFlagPayloads[key], nil diff --git a/posthog.go b/posthog.go index a72e7fe..6b1980f 100644 --- a/posthog.go +++ b/posthog.go @@ -46,7 +46,7 @@ type Client interface { GetFeatureFlag(FeatureFlagPayload) (interface{}, error) // // Method returns feature flag payload value matching key for user (supports multivariate flags). - GetFeatureFlagPayload(FeatureFlagPayload) (interface{}, error) + GetFeatureFlagPayload(FeatureFlagPayload) (string, error) // // Get all flags - returns all flags for a user GetAllFlags(FeatureFlagPayloadNoKey) (map[string]interface{}, error) @@ -299,12 +299,12 @@ func (c *client) ReloadFeatureFlags() error { return nil } -func (c *client) GetFeatureFlagPayload(flagConfig FeatureFlagPayload) (interface{}, error) { +func (c *client) GetFeatureFlagPayload(flagConfig FeatureFlagPayload) (string, error) { if err := flagConfig.validate(); err != nil { return "", err } - var payload interface{} + var payload string var err error if c.featureFlagsPoller != nil { diff --git a/posthog_test.go b/posthog_test.go index b0c2a22..0517481 100644 --- a/posthog_test.go +++ b/posthog_test.go @@ -889,22 +889,6 @@ func TestGetFeatureFlagPayloadWithNoPersonalApiKey(t *testing.T) { t.Errorf("Expected flag payload %v, got: %v", expectedPayload, payload) } - // should we be capturing an event here? - // lastEvent := client.GetLastCapturedEvent() - // if lastEvent == nil || lastEvent.Event != "$feature_flag_called" { - // t.Errorf("Expected a $feature_flag_called event, got: %v", lastEvent) - // } - - // Check that the properties of the captured event match the response from /decide - // if lastEvent != nil { - // if lastEvent.Properties["$feature_flag"] != "beta-feature" { - // t.Errorf("Expected feature flag key 'beta-feature', got: %v", lastEvent.Properties["$feature_flag"]) - // } - // if lastEvent.Properties["$feature_flag_response"] != expectedPayload { - // t.Errorf("Expected feature flag response %v, got: %v", expectedPayload, lastEvent.Properties["$feature_flag_response"]) - // } - // } - // Test a bunch of GetFeatureFlagPayload scenarios tests := []struct { name string