...
1 package evaluation
2
3 import (
4 "testing"
5
6 "github.com/launchdarkly/go-sdk-common/v3/ldreason"
7 "github.com/launchdarkly/go-sdk-common/v3/ldvalue"
8 m "github.com/launchdarkly/go-test-helpers/v3/matchers"
9 "github.com/stretchr/testify/assert"
10 )
11
12
13
14
15 func FailOnAnyPrereqEvent(t *testing.T) func(PrerequisiteFlagEvent) {
16 return func(e PrerequisiteFlagEvent) {
17 assert.Fail(t, "did not expect any prerequisite events", "got event: %+v", e)
18 }
19 }
20
21
22
23 func EvalDetailEquals(expected ldreason.EvaluationDetail) m.Matcher {
24 return m.JSONEqual(expected)
25 }
26
27
28 func EvalDetailProps(variationIndex int, value ldvalue.Value, reason ldreason.EvaluationReason) m.Matcher {
29 return EvalDetailEquals(ldreason.NewEvaluationDetail(value, variationIndex, reason))
30 }
31
32
33 func EvalDetailError(errorKind ldreason.EvalErrorKind) m.Matcher {
34 return EvalDetailEquals(ldreason.NewEvaluationDetailForError(errorKind, ldvalue.Null()))
35 }
36
37
38 func ResultDetailProps(variationIndex int, value ldvalue.Value, reason ldreason.EvaluationReason) m.Matcher {
39 return ResultDetail().Should(EvalDetailProps(variationIndex, value, reason))
40 }
41
42
43 func ResultDetailError(errorKind ldreason.EvalErrorKind) m.Matcher {
44 return ResultDetail().Should(EvalDetailError(errorKind))
45 }
46
47 func ResultDetail() m.MatcherTransform {
48 return m.Transform("result detail", func(value interface{}) (interface{}, error) { return value.(Result).Detail, nil }).
49 EnsureInputValueType(Result{})
50 }
51
View as plain text