@@ -25,47 +25,51 @@ import (
2525 "testing"
2626
2727 "github.com/stretchr/testify/assert"
28+ "go.uber.org/yarpc/yarpctest"
2829
30+ apiv1 "github.com/uber/cadence-idl/go/proto/api/v1"
2931 "github.com/uber/cadence/common"
32+ "github.com/uber/cadence/common/client"
3033 "github.com/uber/cadence/common/types"
3134)
3235
3336func TestGetRequestedConsistencyLevelFromContext (t * testing.T ) {
3437 tests := []struct {
3538 name string
36- ctx context. Context
39+ featureFlags apiv1. FeatureFlags
3740 expected types.QueryConsistencyLevel
3841 }{
3942 {
40- name : "no value in context returns eventual " ,
41- ctx : context . Background () ,
43+ name : "empty feature flags " ,
44+ featureFlags : apiv1. FeatureFlags {} ,
4245 expected : types .QueryConsistencyLevelEventual ,
4346 },
4447 {
45- name : "eventual level in context " ,
46- ctx : context . WithValue ( context . Background (), common . QueryConsistencyLevelHeaderName , types . QueryConsistencyLevelEventual ) ,
48+ name : "auto forwarding disabled " ,
49+ featureFlags : apiv1. FeatureFlags { AutoforwardingEnabled : false } ,
4750 expected : types .QueryConsistencyLevelEventual ,
4851 },
4952 {
50- name : "strong level in context " ,
51- ctx : context . WithValue ( context . Background (), common . QueryConsistencyLevelHeaderName , types . QueryConsistencyLevelStrong ) ,
53+ name : "autoforwarding enabled " ,
54+ featureFlags : apiv1. FeatureFlags { AutoforwardingEnabled : true } ,
5255 expected : types .QueryConsistencyLevelStrong ,
5356 },
5457 {
55- name : "wrong type in context returns eventual" ,
56- ctx : context .WithValue (context .Background (), common .QueryConsistencyLevelHeaderName , "strong" ),
57- expected : types .QueryConsistencyLevelEventual ,
58- },
59- {
60- name : "nil context value returns eventual" ,
61- ctx : context .WithValue (context .Background (), common .QueryConsistencyLevelHeaderName , nil ),
58+ name : "no autoforwarding field" ,
59+ featureFlags : apiv1.FeatureFlags {
60+ WorkflowExecutionAlreadyCompletedErrorEnabled : true ,
61+ },
6262 expected : types .QueryConsistencyLevelEventual ,
6363 },
6464 }
6565
6666 for _ , tt := range tests {
6767 t .Run (tt .name , func (t * testing.T ) {
68- result := getRequestedConsistencyLevelFromContext (tt .ctx )
68+ ctx := yarpctest .ContextWithCall (context .Background (), & yarpctest.Call {
69+ Headers : map [string ]string {common .ClientFeatureFlagsHeaderName : client .FeatureFlagsHeader (tt .featureFlags )},
70+ })
71+
72+ result := getRequestedConsistencyLevelFromContext (ctx )
6973 assert .Equal (t , tt .expected , result )
7074 })
7175 }
0 commit comments