mirror of
https://github.com/aykhans/dodo.git
synced 2025-09-05 18:44:21 +00:00
update 'Merge' of the 'Config'
This commit is contained in:
@@ -5,9 +5,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/aykhans/dodo/pkg/config"
|
||||
"github.com/aykhans/dodo/pkg/types"
|
||||
"github.com/aykhans/dodo/pkg/utils"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
@@ -1129,38 +1127,3 @@ func TestConfigENVParser_PartialConfiguration(t *testing.T) {
|
||||
assert.Nil(t, config.RequestCount)
|
||||
})
|
||||
}
|
||||
|
||||
func TestConfigENVParser_MergeScenarios(t *testing.T) {
|
||||
t.Run("Parse configuration suitable for merging", func(t *testing.T) {
|
||||
// Set only specific fields that would override defaults
|
||||
t.Setenv("METHOD", "PUT")
|
||||
t.Setenv("TIMEOUT", "45s")
|
||||
t.Setenv("HEADER", "X-Custom: value")
|
||||
|
||||
parser := NewConfigENVParser("")
|
||||
envConfig, err := parser.Parse()
|
||||
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, envConfig)
|
||||
|
||||
// Create a default config
|
||||
defaultConfig := &config.Config{
|
||||
Method: utils.ToPtr("GET"),
|
||||
Timeout: utils.ToPtr(30 * time.Second),
|
||||
DodosCount: utils.ToPtr(uint(1)),
|
||||
Headers: types.Headers{{Key: "User-Agent", Value: []string{"DefaultAgent/1.0"}}},
|
||||
}
|
||||
|
||||
// Merge the parsed config into defaults
|
||||
defaultConfig.Merge(envConfig)
|
||||
|
||||
// Verify merged values
|
||||
assert.Equal(t, "PUT", *defaultConfig.Method, "Method should be overridden")
|
||||
assert.Equal(t, 45*time.Second, *defaultConfig.Timeout, "Timeout should be overridden")
|
||||
assert.Equal(t, uint(1), *defaultConfig.DodosCount, "DodosCount should remain from default")
|
||||
|
||||
// Headers should contain the new header (merge behavior depends on implementation)
|
||||
assert.Len(t, defaultConfig.Headers, 1)
|
||||
assert.Equal(t, "X-Custom", defaultConfig.Headers[0].Key)
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user