diff --git a/internal/config/config.go b/internal/config/config.go index 6e2c91e..3160085 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -234,8 +234,8 @@ func LoadConfig() (*Config, error) { continue } - branchName := strings.ToLower(keyParts[2]) - property := strings.ToLower(keyParts[3]) + branchName := strings.ToLower(strings.Join(keyParts[2:len(keyParts)-1], ".")) + property := strings.ToLower(keyParts[len(keyParts)-1]) // Initialize branch map if needed if _, ok := branchMap[branchName]; !ok { diff --git a/test/internal/config/config_test.go b/test/internal/config/config_test.go index 1731d6b..f74c6eb 100644 --- a/test/internal/config/config_test.go +++ b/test/internal/config/config_test.go @@ -270,6 +270,58 @@ func TestApplyOverrides_CustomBranchNames(t *testing.T) { assert.False(t, exists) } +func TestApplyOverrides_CustomBranchNamesWithDots(t *testing.T) { + cfg := config.DefaultConfig() + cfg = config.ApplyOverrides(cfg, config.ConfigOverrides{ + MainBranch: "custom.main", + DevelopBranch: "custom.dev", + }) + + // Check main branch (base branch) + mainConfig, exists := cfg.Branches["custom.main"] + assert.True(t, exists) + assert.Equal(t, string(config.BranchTypeBase), mainConfig.Type) + assert.Equal(t, "", mainConfig.Parent) + assert.Equal(t, "", mainConfig.StartPoint) + + // Check develop branch (base branch) + developConfig, exists := cfg.Branches["custom.dev"] + assert.True(t, exists) + assert.Equal(t, string(config.BranchTypeBase), developConfig.Type) + assert.Equal(t, "custom.main", developConfig.Parent) + assert.Equal(t, "", developConfig.StartPoint) + + // Check feature branch parent and start point + featureConfig, exists := cfg.Branches["feature"] + assert.True(t, exists) + assert.Equal(t, "custom.dev", featureConfig.Parent) + assert.Equal(t, "custom.dev", featureConfig.StartPoint) + + // Check release branch parent and start point + releaseConfig, exists := cfg.Branches["release"] + assert.True(t, exists) + assert.Equal(t, "custom.main", releaseConfig.Parent) + assert.Equal(t, "custom.dev", releaseConfig.StartPoint) + + // Check hotfix branch parent and start point + hotfixConfig, exists := cfg.Branches["hotfix"] + assert.True(t, exists) + assert.Equal(t, "custom.main", hotfixConfig.Parent) + assert.Equal(t, "custom.main", hotfixConfig.StartPoint) + + // Check support branch parent and start point + supportConfig, exists := cfg.Branches["support"] + assert.True(t, exists) + assert.Equal(t, "custom.main", supportConfig.Parent) + assert.Equal(t, "custom.main", supportConfig.StartPoint) + + // Check old names don't exist + _, exists = cfg.Branches["main"] + assert.False(t, exists) + _, exists = cfg.Branches["develop"] + assert.False(t, exists) +} + func TestApplyOverrides_CustomPrefixes(t *testing.T) { cfg := config.DefaultConfig() cfg = config.ApplyOverrides(cfg, config.ConfigOverrides{