Skip to content

Commit bbbefd0

Browse files
Copilotasmyasnikov
andauthored
Add comprehensive unit tests for internal/coordination package to increase test coverage (#1901)
Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: asmyasnikov <[email protected]> Co-authored-by: Aleksey Myasnikov <[email protected]>
1 parent 018e639 commit bbbefd0

File tree

5 files changed

+1026
-0
lines changed

5 files changed

+1026
-0
lines changed

internal/coordination/client_test.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,3 +386,61 @@ func TestDropNode(t *testing.T) {
386386
require.False(t, mustDeleteSession(err))
387387
})
388388
}
389+
390+
func TestConsistencyMode(t *testing.T) {
391+
for _, tt := range []struct {
392+
name string
393+
input Ydb_Coordination.ConsistencyMode
394+
expected coordination.ConsistencyMode
395+
}{
396+
{
397+
name: "Strict",
398+
input: Ydb_Coordination.ConsistencyMode_CONSISTENCY_MODE_STRICT,
399+
expected: coordination.ConsistencyModeStrict,
400+
},
401+
{
402+
name: "Relaxed",
403+
input: Ydb_Coordination.ConsistencyMode_CONSISTENCY_MODE_RELAXED,
404+
expected: coordination.ConsistencyModeRelaxed,
405+
},
406+
{
407+
name: "Unset",
408+
input: Ydb_Coordination.ConsistencyMode_CONSISTENCY_MODE_UNSET,
409+
expected: coordination.ConsistencyModeUnset,
410+
},
411+
} {
412+
t.Run(tt.name, func(t *testing.T) {
413+
result := consistencyMode(tt.input)
414+
require.Equal(t, tt.expected, result)
415+
})
416+
}
417+
}
418+
419+
func TestRatelimiterCountersMode(t *testing.T) {
420+
for _, tt := range []struct {
421+
name string
422+
input Ydb_Coordination.RateLimiterCountersMode
423+
expected coordination.RatelimiterCountersMode
424+
}{
425+
{
426+
name: "Aggregated",
427+
input: Ydb_Coordination.RateLimiterCountersMode_RATE_LIMITER_COUNTERS_MODE_AGGREGATED,
428+
expected: coordination.RatelimiterCountersModeAggregated,
429+
},
430+
{
431+
name: "Detailed",
432+
input: Ydb_Coordination.RateLimiterCountersMode_RATE_LIMITER_COUNTERS_MODE_DETAILED,
433+
expected: coordination.RatelimiterCountersModeDetailed,
434+
},
435+
{
436+
name: "Unset",
437+
input: Ydb_Coordination.RateLimiterCountersMode_RATE_LIMITER_COUNTERS_MODE_UNSET,
438+
expected: coordination.RatelimiterCountersModeUnset,
439+
},
440+
} {
441+
t.Run(tt.name, func(t *testing.T) {
442+
result := ratelimiterCountersMode(tt.input)
443+
require.Equal(t, tt.expected, result)
444+
})
445+
}
446+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package config
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/require"
7+
8+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/config"
9+
"github.com/ydb-platform/ydb-go-sdk/v3/trace"
10+
)
11+
12+
func TestNew(t *testing.T) {
13+
t.Run("Default", func(t *testing.T) {
14+
cfg := New()
15+
require.NotNil(t, cfg)
16+
require.NotNil(t, cfg.Trace())
17+
})
18+
t.Run("WithTrace", func(t *testing.T) {
19+
traceCoordination := &trace.Coordination{
20+
OnNew: func(info trace.CoordinationNewStartInfo) func(trace.CoordinationNewDoneInfo) {
21+
return nil
22+
},
23+
}
24+
cfg := New(WithTrace(traceCoordination))
25+
require.NotNil(t, cfg)
26+
require.NotNil(t, cfg.Trace())
27+
})
28+
t.Run("WithCommonConfig", func(t *testing.T) {
29+
commonConfig := config.Common{}
30+
cfg := New(With(commonConfig))
31+
require.NotNil(t, cfg)
32+
require.Equal(t, commonConfig.OperationTimeout(), cfg.OperationTimeout())
33+
})
34+
t.Run("WithMultipleOptions", func(t *testing.T) {
35+
traceCoordination := &trace.Coordination{}
36+
commonConfig := config.Common{}
37+
cfg := New(
38+
WithTrace(traceCoordination),
39+
With(commonConfig),
40+
)
41+
require.NotNil(t, cfg)
42+
require.NotNil(t, cfg.Trace())
43+
require.Equal(t, commonConfig.OperationTimeout(), cfg.OperationTimeout())
44+
})
45+
t.Run("WithNilOption", func(t *testing.T) {
46+
cfg := New(nil)
47+
require.NotNil(t, cfg)
48+
require.NotNil(t, cfg.Trace())
49+
})
50+
t.Run("WithTraceCompose", func(t *testing.T) {
51+
trace1 := &trace.Coordination{
52+
OnNew: func(info trace.CoordinationNewStartInfo) func(trace.CoordinationNewDoneInfo) {
53+
return nil
54+
},
55+
}
56+
trace2 := &trace.Coordination{
57+
OnClose: func(info trace.CoordinationCloseStartInfo) func(trace.CoordinationCloseDoneInfo) {
58+
return nil
59+
},
60+
}
61+
cfg := New(WithTrace(trace1), WithTrace(trace2))
62+
require.NotNil(t, cfg)
63+
require.NotNil(t, cfg.Trace())
64+
})
65+
}
66+
67+
func TestTrace(t *testing.T) {
68+
t.Run("DefaultTrace", func(t *testing.T) {
69+
cfg := New()
70+
trace := cfg.Trace()
71+
require.NotNil(t, trace)
72+
})
73+
t.Run("CustomTrace", func(t *testing.T) {
74+
traceCoordination := &trace.Coordination{
75+
OnNew: func(info trace.CoordinationNewStartInfo) func(trace.CoordinationNewDoneInfo) {
76+
return nil
77+
},
78+
}
79+
cfg := New(WithTrace(traceCoordination))
80+
trace := cfg.Trace()
81+
require.NotNil(t, trace)
82+
})
83+
}

0 commit comments

Comments
 (0)