From 232a6442f90b053f6c7e0b3accf8b38264fc2575 Mon Sep 17 00:00:00 2001 From: Mike Bottazzo <1796534+btzo@users.noreply.github.com> Date: Fri, 22 Jan 2021 11:38:42 -0300 Subject: [PATCH] add missing raise for formatting functions (#1376) * add missing raise for formatting functions * add ExitCodeTests file to include test of cli formatting without check parameter Co-authored-by: Florian Verdonck --- src/Fantomas.CoreGlobalTool.Tests/ExitCodeTests.fs | 14 ++++++++++++++ .../Fantomas.CoreGlobalTool.Tests.fsproj | 1 + src/Fantomas.CoreGlobalTool.Tests/TestHelpers.fs | 4 ++++ src/Fantomas.CoreGlobalTool/Program.fs | 7 +++++++ 4 files changed, 26 insertions(+) create mode 100644 src/Fantomas.CoreGlobalTool.Tests/ExitCodeTests.fs diff --git a/src/Fantomas.CoreGlobalTool.Tests/ExitCodeTests.fs b/src/Fantomas.CoreGlobalTool.Tests/ExitCodeTests.fs new file mode 100644 index 0000000000..911b21e093 --- /dev/null +++ b/src/Fantomas.CoreGlobalTool.Tests/ExitCodeTests.fs @@ -0,0 +1,14 @@ +module Fantomas.CoreGlobalTool.Tests.ExitCodeTests + +open NUnit.Framework +open FsUnit +open Fantomas.CoreGlobalTool.Tests.TestHelpers + +[] +let WithErrors = """let a =""" + +[] +let ``invalid files should report exit code 1`` () = + use fileFixture = new TemporaryFileCodeSample(WithErrors) + let (exitCode, _) = formatCode fileFixture.Filename + exitCode |> should equal 1 diff --git a/src/Fantomas.CoreGlobalTool.Tests/Fantomas.CoreGlobalTool.Tests.fsproj b/src/Fantomas.CoreGlobalTool.Tests/Fantomas.CoreGlobalTool.Tests.fsproj index 1d4dceb79b..0cadf1b791 100644 --- a/src/Fantomas.CoreGlobalTool.Tests/Fantomas.CoreGlobalTool.Tests.fsproj +++ b/src/Fantomas.CoreGlobalTool.Tests/Fantomas.CoreGlobalTool.Tests.fsproj @@ -18,6 +18,7 @@ + \ No newline at end of file diff --git a/src/Fantomas.CoreGlobalTool.Tests/TestHelpers.fs b/src/Fantomas.CoreGlobalTool.Tests/TestHelpers.fs index 58f87375df..7de7426584 100644 --- a/src/Fantomas.CoreGlobalTool.Tests/TestHelpers.fs +++ b/src/Fantomas.CoreGlobalTool.Tests/TestHelpers.fs @@ -124,3 +124,7 @@ let runFantomasTool arguments = let checkCode file = let arguments = sprintf "--check \"%s\"" file runFantomasTool arguments + +let formatCode file = + let arguments = sprintf "\"%s\"" file + runFantomasTool arguments diff --git a/src/Fantomas.CoreGlobalTool/Program.fs b/src/Fantomas.CoreGlobalTool/Program.fs index 50e59cea07..1bbe635ec4 100644 --- a/src/Fantomas.CoreGlobalTool/Program.fs +++ b/src/Fantomas.CoreGlobalTool/Program.fs @@ -307,6 +307,8 @@ let main argv = File.WriteAllText(outFile, File.ReadAllText inFile) printfn "Force writing original contents to %s" outFile + raise exn + let stringToFile (s: string) (outFile: string) config = try let fsi = Path.GetExtension(outFile) = ".fsi" @@ -329,6 +331,8 @@ let main argv = File.WriteAllText(outFile, s) printfn "Force writing original contents to %s." outFile + raise exn + let stringToStdOut s config = try use buffer = new StringWriter() :> TextWriter @@ -337,6 +341,7 @@ let main argv = with exn -> eprintfn "The following exception occurs while formatting stdin: %O" exn if force then stdout.Write(s) + raise exn let processFile inputFile outputFile = if inputFile <> outputFile then @@ -377,6 +382,8 @@ let main argv = if force then stdout.Write(File.ReadAllText inFile) + raise exn + if Option.isSome version then let version = CodeFormatter.GetVersion() printfn "Fantomas v%s" version