module RootUriTests (tests) where import Control.Monad.IO.Class (liftIO) import Development.IDE.GHC.Util import Development.IDE.Test (expectNoMoreDiagnostics) import Language.LSP.Test import System.FilePath -- import Test.QuickCheck.Instances () import Config import Data.Default (def) import Test.Hls (TestConfig (..), runSessionWithTestConfig) import Test.Hls.FileSystem (copyDir) import Test.Tasty import Test.Tasty.HUnit -- | checks if we use InitializeParams.rootUri for loading session tests :: TestTree tests = testCase "use rootUri" . runTest "dirA" "dirB" $ \dir -> do let bPath = dir "dirB/Foo.hs" bSource <- liftIO $ readFileUtf8 bPath _ <- createDoc "Foo.hs" "haskell" bSource expectNoMoreDiagnostics 0.5 where -- similar to run' except we can configure where to start ghcide and session runTest :: FilePath -> FilePath -> (FilePath -> Session ()) -> IO () runTest dir1 dir2 = runSessionWithTestConfig def { testPluginDescriptor = dummyPlugin , testDirLocation = Right $ mkIdeTestFs [copyDir "rootUri"] , testServerRoot = Just dir1 , testClientRoot = Just dir2 , testShiftRoot = True }