@@ -35,6 +35,37 @@ func TestConfigFileExistsInToolsConfigDirectory(t *testing.T) {
3535 "Config path should be correctly formed relative path" )
3636}
3737
38+ func TestConfigFilePrefersToolsConfigDirectory (t * testing.T ) {
39+ // Create a test directory structure
40+ tempDir := t .TempDir ()
41+ repoDir := filepath .Join (tempDir , "src" )
42+ repositoryCache := filepath .Join (repoDir , ".codacy" )
43+
44+ // Create configuration
45+ config := * config .NewConfigType (repoDir , repositoryCache , "unused-global-cache" )
46+
47+ // Create .codacy/tools-configs directory
48+ configDir := filepath .Join (repoDir , ".codacy" , "tools-configs" )
49+ err := os .MkdirAll (configDir , 0755 )
50+ assert .NoError (t , err , "Failed to create test directory structure" )
51+
52+ // Create a test config file in both locations
53+ generatedConfigFile := filepath .Join (configDir , "some-config.yaml" )
54+ existingConfigFile := filepath .Join (repoDir , "some-config.yaml" )
55+
56+ err = os .WriteFile (generatedConfigFile , []byte ("tools config content" ), 0644 )
57+ assert .NoError (t , err , "Failed to create test config file in tools config directory" )
58+
59+ err = os .WriteFile (existingConfigFile , []byte ("repository config content" ), 0644 )
60+ assert .NoError (t , err , "Failed to create test config file in repository directory" )
61+
62+ // Test case: Config file in tools config directory is preferred
63+ configPath , exists := ConfigFileExists (config , "some-config.yaml" )
64+ assert .True (t , exists , "Config file should exist" )
65+ assert .Equal (t , filepath .Join (config .ToolsConfigDirectory (), "some-config.yaml" ), configPath ,
66+ "Config path should prefer tools config directory" )
67+ }
68+
3869func TestConfigFileExistsInRepositoryDirectory (t * testing.T ) {
3970 // Create a test directory structure
4071 tempDir := t .TempDir ()
0 commit comments