Skip to content

Commit 4de36c7

Browse files
committed
add unit test
Signed-off-by: Shijie Sheng <liouvetren@gmail.com>
1 parent 671390c commit 4de36c7

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

internal/internal_utils_test.go

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,102 @@ func TestConstructError_TimeoutError(t *testing.T) {
179179
require.Equal(t, s.TimeoutTypeHeartbeat, timeoutErr.TimeoutType())
180180
require.False(t, timeoutErr.HasDetails())
181181
}
182+
183+
func TestFeatureFlagsHeader(t *testing.T) {
184+
t.Parallel()
185+
186+
tests := []struct {
187+
name string
188+
flags FeatureFlags
189+
expected string
190+
}{
191+
{
192+
name: "all flags disabled",
193+
flags: FeatureFlags{},
194+
expected: `{}`,
195+
},
196+
{
197+
name: "WorkflowExecutionAlreadyCompletedErrorEnabled only",
198+
flags: FeatureFlags{
199+
WorkflowExecutionAlreadyCompletedErrorEnabled: true,
200+
},
201+
expected: `{"WorkflowExecutionAlreadyCompletedErrorEnabled":true}`,
202+
},
203+
{
204+
name: "AutoforwardingEnabled only",
205+
flags: FeatureFlags{
206+
AutoforwardingEnabled: true,
207+
},
208+
expected: `{"autoforwardingEnabled":true}`,
209+
},
210+
{
211+
name: "multiple flags enabled",
212+
flags: FeatureFlags{
213+
WorkflowExecutionAlreadyCompletedErrorEnabled: true,
214+
AutoforwardingEnabled: true,
215+
},
216+
expected: `{"WorkflowExecutionAlreadyCompletedErrorEnabled":true,"autoforwardingEnabled":true}`,
217+
},
218+
{
219+
name: "client-side-only flags are excluded",
220+
flags: FeatureFlags{
221+
PollerAutoScalerEnabled: true,
222+
EphemeralTaskListsEnabled: true,
223+
},
224+
expected: `{}`,
225+
},
226+
{
227+
name: "mixed flags - only server-side flags included",
228+
flags: FeatureFlags{
229+
WorkflowExecutionAlreadyCompletedErrorEnabled: true,
230+
AutoforwardingEnabled: true,
231+
PollerAutoScalerEnabled: true,
232+
EphemeralTaskListsEnabled: true,
233+
},
234+
expected: `{"WorkflowExecutionAlreadyCompletedErrorEnabled":true,"autoforwardingEnabled":true}`,
235+
},
236+
}
237+
238+
for _, tt := range tests {
239+
tt := tt
240+
t.Run(tt.name, func(t *testing.T) {
241+
t.Parallel()
242+
result := featureFlagsHeader(tt.flags)
243+
assert.Equal(t, tt.expected, result)
244+
})
245+
}
246+
}
247+
248+
func TestFromInternalFeatureFlags(t *testing.T) {
249+
t.Parallel()
250+
251+
tests := []struct {
252+
name string
253+
input FeatureFlags
254+
}{
255+
{
256+
name: "empty flags",
257+
input: FeatureFlags{},
258+
},
259+
{
260+
name: "all flags set",
261+
input: FeatureFlags{
262+
WorkflowExecutionAlreadyCompletedErrorEnabled: true,
263+
AutoforwardingEnabled: true,
264+
PollerAutoScalerEnabled: true,
265+
EphemeralTaskListsEnabled: true,
266+
},
267+
},
268+
}
269+
270+
for _, tt := range tests {
271+
tt := tt
272+
t.Run(tt.name, func(t *testing.T) {
273+
t.Parallel()
274+
result := fromInternalFeatureFlags(tt.input)
275+
276+
assert.Equal(t, tt.input.WorkflowExecutionAlreadyCompletedErrorEnabled, result.WorkflowExecutionAlreadyCompletedErrorEnabled)
277+
assert.Equal(t, tt.input.AutoforwardingEnabled, result.AutoforwardingEnabled)
278+
})
279+
}
280+
}

0 commit comments

Comments
 (0)