module PreprocessorTests (tests) where
import qualified Data.Text as T
import Development.IDE.Test (expectDiagnostics)
import Language.LSP.Protocol.Types hiding (SemanticTokenAbsolute (..),
SemanticTokenRelative (..),
SemanticTokensEdit (..), mkRange)
import Language.LSP.Test
-- import Test.QuickCheck.Instances ()
import Test.Tasty
import TestUtils
tests :: TestTree
tests = testSessionWait "preprocessor" $ do
let content =
T.unlines
[ "{-# OPTIONS_GHC -F -pgmF=ghcide-test-preprocessor #-}"
, "module Testing where"
, "y = x + z" -- plugin replaces x with y, making this have only one diagnostic
]
_ <- createDoc "Testing.hs" "haskell" content
expectDiagnostics
[ ( "Testing.hs",
[(DiagnosticSeverity_Error, (2, 8), "Variable not in scope: z")]
)
]