{-# LANGUAGE OverloadedStrings #-} module Main ( main ) where import qualified Ide.Plugin.Fourmolu as Fourmolu import Language.LSP.Test import Language.LSP.Types import System.FilePath import Test.Hls main :: IO () main = defaultTestRunner tests fourmoluPlugin :: PluginDescriptor IdeState fourmoluPlugin = Fourmolu.descriptor "fourmolu" tests :: TestTree tests = testGroup "fourmolu" [ goldenWithFourmolu "formats correctly" "Fourmolu" "formatted" $ \doc -> do formatDoc doc (FormattingOptions 4 True Nothing Nothing Nothing) , goldenWithFourmolu "formats imports correctly" "Fourmolu" "formatted" $ \doc -> do formatDoc doc (FormattingOptions 4 True Nothing Nothing Nothing) ] goldenWithFourmolu :: TestName -> FilePath -> FilePath -> (TextDocumentIdentifier -> Session ()) -> TestTree goldenWithFourmolu title path desc = goldenWithHaskellDocFormatter fourmoluPlugin "fourmolu" title testDataDir path desc "hs" testDataDir :: FilePath testDataDir = "test" "testdata"