diff --git a/src/Fantomas.Tests/FormatConfigJsonConfigurationFileTests.fs b/src/Fantomas.Tests/FormatConfigJsonConfigurationFileTests.fs index b28c6b042e..6681cce96c 100644 --- a/src/Fantomas.Tests/FormatConfigJsonConfigurationFileTests.fs +++ b/src/Fantomas.Tests/FormatConfigJsonConfigurationFileTests.fs @@ -91,6 +91,34 @@ let ``pointing to config in a subfolder should return parent config file as well delete parentFile delete childFolder +[] +let ``pointing to subfolder containing dot and trailing slash returns parent config file`` () = + let parentFile = mkConfig None FormatConfig.Default + let subDir = uniqueString() + ".dir" + mkConfigFromContent "Test.fs" (Some(subDir)) "" |> ignore + let dirSep = string Path.DirectorySeparatorChar + let childFolder = Path.GetDirectoryName(parentFile) + dirSep + subDir + dirSep + try + let paths = ConfigFile.findConfigurationFiles childFolder + paths == [parentFile] + finally + delete parentFile + delete childFolder + +[] +let ``pointing to subfolder conntaining dot without trailing slash returns parent config file`` () = + let parentFile = mkConfig None FormatConfig.Default + let subDir = uniqueString() + ".dir" + mkConfigFromContent "Test.fs" (Some(subDir)) "" |> ignore + let dirSep = string Path.DirectorySeparatorChar + let childFolder = Path.GetDirectoryName(parentFile) + dirSep + subDir + try + let paths = ConfigFile.findConfigurationFiles childFolder + paths == [parentFile] + finally + delete parentFile + delete childFolder + [] let ``simple config file parses valid option`` () = let path = mkConfigFromJson None "{\"KeepNewlineAfter\":true}" diff --git a/src/Fantomas/ConfigFile.fs b/src/Fantomas/ConfigFile.fs index 6aac43c7bf..3ae3d20004 100644 --- a/src/Fantomas/ConfigFile.fs +++ b/src/Fantomas/ConfigFile.fs @@ -23,7 +23,7 @@ let rec findConfigurationFiles fileOrFolder : string list = |> List.map (fun fn -> Path.Combine(folderPath, fn)) |> List.filter (File.Exists) - if Path.GetExtension(fileOrFolder) = "" && Directory.Exists fileOrFolder then + if Directory.Exists fileOrFolder then getParentFolders [] fileOrFolder |> List.collect findConfigInFolder elif File.Exists(fileOrFolder) then