mirror of
https://github.com/aykhans/dodo.git
synced 2025-09-01 00:53:34 +00:00
Add 'Files' field to the 'Config'. Add 'Value' field to the 'FieldParseError'
This commit is contained in:
@@ -23,6 +23,7 @@ func TestMergeConfig(t *testing.T) {
|
||||
newDuration := 2 * time.Minute
|
||||
|
||||
config := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Method: utils.ToPtr("GET"),
|
||||
URL: originalURL,
|
||||
Timeout: &originalTimeout,
|
||||
@@ -39,6 +40,7 @@ func TestMergeConfig(t *testing.T) {
|
||||
}
|
||||
|
||||
newConfig := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Method: utils.ToPtr("POST"),
|
||||
URL: newURL,
|
||||
Timeout: &newTimeout,
|
||||
@@ -76,6 +78,7 @@ func TestMergeConfig(t *testing.T) {
|
||||
originalTimeout := 5 * time.Second
|
||||
|
||||
config := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Method: utils.ToPtr("GET"),
|
||||
URL: originalURL,
|
||||
Timeout: &originalTimeout,
|
||||
@@ -85,6 +88,7 @@ func TestMergeConfig(t *testing.T) {
|
||||
|
||||
newURL, _ := url.Parse("https://new.example.com")
|
||||
newConfig := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
URL: newURL,
|
||||
DodosCount: utils.ToPtr(uint(10)),
|
||||
}
|
||||
@@ -103,6 +107,7 @@ func TestMergeConfig(t *testing.T) {
|
||||
originalTimeout := 5 * time.Second
|
||||
|
||||
config := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Method: utils.ToPtr("GET"),
|
||||
URL: originalURL,
|
||||
Timeout: &originalTimeout,
|
||||
@@ -112,6 +117,7 @@ func TestMergeConfig(t *testing.T) {
|
||||
}
|
||||
|
||||
newConfig := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Method: nil,
|
||||
URL: nil,
|
||||
Timeout: nil,
|
||||
@@ -132,7 +138,9 @@ func TestMergeConfig(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("MergeConfig with empty slices", func(t *testing.T) {
|
||||
configFile, _ := types.ParseConfigFile("original.yml")
|
||||
config := &Config{
|
||||
Files: []types.ConfigFile{*configFile},
|
||||
Params: types.Params{{Key: "original", Value: []string{"value"}}},
|
||||
Headers: types.Headers{{Key: "Original-Header", Value: []string{"original"}}},
|
||||
Cookies: types.Cookies{{Key: "originalCookie", Value: []string{"originalValue"}}},
|
||||
@@ -141,6 +149,7 @@ func TestMergeConfig(t *testing.T) {
|
||||
}
|
||||
|
||||
newConfig := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Params: types.Params{},
|
||||
Headers: types.Headers{},
|
||||
Cookies: types.Cookies{},
|
||||
@@ -150,6 +159,7 @@ func TestMergeConfig(t *testing.T) {
|
||||
|
||||
config.MergeConfig(newConfig)
|
||||
|
||||
assert.Equal(t, []types.ConfigFile{*configFile}, config.Files, "Empty Files should not override")
|
||||
assert.Equal(t, types.Params{{Key: "original", Value: []string{"value"}}}, config.Params, "Empty Params should not override")
|
||||
assert.Equal(t, types.Headers{{Key: "Original-Header", Value: []string{"original"}}}, config.Headers, "Empty Headers should not override")
|
||||
assert.Equal(t, types.Cookies{{Key: "originalCookie", Value: []string{"originalValue"}}}, config.Cookies, "Empty Cookies should not override")
|
||||
@@ -157,6 +167,28 @@ func TestMergeConfig(t *testing.T) {
|
||||
assert.Equal(t, types.Proxies{}, config.Proxies, "Empty Proxies should not override")
|
||||
})
|
||||
|
||||
t.Run("MergeConfig with Files field", func(t *testing.T) {
|
||||
configFile1, _ := types.ParseConfigFile("config1.yml")
|
||||
configFile2, _ := types.ParseConfigFile("config2.yaml")
|
||||
|
||||
config := &Config{
|
||||
Files: []types.ConfigFile{*configFile1},
|
||||
Method: utils.ToPtr("GET"),
|
||||
Headers: types.Headers{{Key: "Original-Header", Value: []string{"original"}}},
|
||||
}
|
||||
|
||||
newConfig := &Config{
|
||||
Files: []types.ConfigFile{*configFile2},
|
||||
Method: utils.ToPtr("POST"),
|
||||
}
|
||||
|
||||
config.MergeConfig(newConfig)
|
||||
|
||||
assert.Equal(t, "POST", *config.Method, "Method should be updated")
|
||||
assert.Equal(t, []types.ConfigFile{*configFile1, *configFile2}, config.Files, "Files should be appended")
|
||||
assert.Equal(t, types.Headers{{Key: "Original-Header", Value: []string{"original"}}}, config.Headers, "Headers should remain unchanged")
|
||||
})
|
||||
|
||||
t.Run("MergeConfig on empty original config", func(t *testing.T) {
|
||||
config := &Config{}
|
||||
|
||||
@@ -165,6 +197,7 @@ func TestMergeConfig(t *testing.T) {
|
||||
newDuration := 2 * time.Minute
|
||||
|
||||
newConfig := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Method: utils.ToPtr("POST"),
|
||||
URL: newURL,
|
||||
Timeout: &newTimeout,
|
||||
@@ -246,6 +279,7 @@ func TestSetDefaults(t *testing.T) {
|
||||
|
||||
t.Run("SetDefaults adds User-Agent when missing", func(t *testing.T) {
|
||||
config := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Headers: types.Headers{{Key: "Content-Type", Value: []string{"application/json"}}},
|
||||
}
|
||||
|
||||
@@ -268,6 +302,7 @@ func TestSetDefaults(t *testing.T) {
|
||||
|
||||
t.Run("SetDefaults with partial config", func(t *testing.T) {
|
||||
config := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Method: utils.ToPtr("PUT"),
|
||||
Yes: utils.ToPtr(true),
|
||||
}
|
||||
@@ -306,6 +341,7 @@ func TestSetDefaults(t *testing.T) {
|
||||
|
||||
t.Run("SetDefaults with empty Headers initializes correctly", func(t *testing.T) {
|
||||
config := &Config{
|
||||
Files: []types.ConfigFile{},
|
||||
Headers: types.Headers{},
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user