From 97f16abdd4f18836953740d05025a138162f85d1 Mon Sep 17 00:00:00 2001 From: franciscoazevedo Date: Thu, 15 May 2025 13:36:16 +0100 Subject: [PATCH] handling empty repo patterns for lizard with empty creation instead of fetching codacy default --- cmd/analyze.go | 5 +---- cmd/init.go | 15 +++------------ cmd/init_test.go | 27 +++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/cmd/analyze.go b/cmd/analyze.go index 7a5d611d..2b6f7afb 100644 --- a/cmd/analyze.go +++ b/cmd/analyze.go @@ -402,10 +402,7 @@ func runLizardAnalysis(workDirectory string, pathsToCheck []string, outputFile s } } else { fmt.Println("No configuration file found for Lizard, using default patterns, run init with repository token to get a custom configuration") - patterns, err = tools.FetchDefaultEnabledPatterns(Lizard) - if err != nil { - return fmt.Errorf("failed to fetch default patterns: %v", err) - } + patterns = []domain.PatternDefinition{} } return lizard.RunLizard(workDirectory, lizardBinary, pathsToCheck, outputFile, outputFormat, patterns) diff --git a/cmd/init.go b/cmd/init.go index ec197c10..e9f9ba20 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -541,19 +541,10 @@ func cleanConfigDirectory(toolsConfigDir string) error { } func createLizardConfigFile(toolsConfigDir string, patternConfiguration []domain.PatternConfiguration) error { - var patterns []domain.PatternDefinition - if len(patternConfiguration) == 0 { - var err error - patterns, err = tools.FetchDefaultEnabledPatterns(Lizard) - if err != nil { - return err - } - } else { - patterns = make([]domain.PatternDefinition, len(patternConfiguration)) - for i, pattern := range patternConfiguration { - patterns[i] = pattern.PatternDefinition - } + patterns := make([]domain.PatternDefinition, len(patternConfiguration)) + for i, pattern := range patternConfiguration { + patterns[i] = pattern.PatternDefinition } diff --git a/cmd/init_test.go b/cmd/init_test.go index 4ef6bf0a..33701002 100644 --- a/cmd/init_test.go +++ b/cmd/init_test.go @@ -2,6 +2,7 @@ package cmd import ( "codacy/cli-v2/config" + "codacy/cli-v2/domain" "codacy/cli-v2/tools" "codacy/cli-v2/utils" "os" @@ -244,3 +245,29 @@ func TestInitCommand_NoToken(t *testing.T) { assert.NoError(t, err, "Expected config file %s to be created", file) } } + +func TestCreateLizardConfigFile_EmptyAndNonEmpty(t *testing.T) { + tempDir := t.TempDir() + + // Case 1: Empty patternConfiguration + err := createLizardConfigFile(tempDir, []domain.PatternConfiguration{}) + assert.NoError(t, err, "Should not error with empty patternConfiguration") + lizardFile := filepath.Join(tempDir, "lizard.yaml") + _, err = os.Stat(lizardFile) + assert.NoError(t, err, "lizard.yaml should be created for empty input") + + // Case 2: Non-empty patternConfiguration + patterns := []domain.PatternConfiguration{ + { + PatternDefinition: domain.PatternDefinition{ + Id: "Lizard_1", + Enabled: true, + }, + }, + } + err = createLizardConfigFile(tempDir, patterns) + assert.NoError(t, err, "Should not error with non-empty patternConfiguration") + content, err := os.ReadFile(lizardFile) + assert.NoError(t, err, "Should be able to read lizard.yaml") + assert.NotEmpty(t, content, "lizard.yaml should not be empty for non-empty input") +}