packages feed

hls-floskell-plugin-1.0.0.0: test/Main.hs

{-# LANGUAGE OverloadedStrings #-}
module Main(main) where

import qualified Data.Text.Lazy          as TL
import qualified Data.Text.Lazy.Encoding as TL
import qualified Ide.Plugin.Floskell     as Floskell
import           Test.Hls

main :: IO ()
main = defaultTestRunner tests

plugin :: PluginDescriptor IdeState
plugin = Floskell.descriptor "floskell"

tests :: TestTree
tests = testGroup "floskell"
  [ goldenGitDiff "formats a document" "test/testdata/Floskell.formatted_document.hs" $ runSessionWithServerFormatter plugin "floskell" "test/testdata" $ do
        doc <- openDoc "Floskell.hs" "haskell"
        formatDoc doc (FormattingOptions 4 True Nothing Nothing Nothing)
        TL.encodeUtf8 . TL.fromStrict <$> documentContents doc

  , goldenGitDiff "formats a range" "test/testdata/Floskell.formatted_range.hs" $ runSessionWithServerFormatter plugin "floskell" "test/testdata" $ do
      doc <- openDoc "Floskell.hs" "haskell"
      let range = Range (Position 1 0) (Position 4 22)
      formatRange doc (FormattingOptions 4 True Nothing Nothing Nothing) range
      TL.encodeUtf8 . TL.fromStrict <$> documentContents doc
  ]