{-# OPTIONS_GHC -F -pgmF htfpp #-} module RunSpec( htf_thisModulesTests ) where import Control.Monad.IO.Class (liftIO) import Neovim (vim_call_function', toObject, vim_command) import Test.Framework import UnliftIO.Directory (getCurrentDirectory) import Chromatin.Data.Chromatin (Chromatin) import Chromatin.Data.ActiveRplugin (ActiveRplugin(ActiveRplugin)) import Chromatin.Data.Rplugin (Rplugin(Rplugin)) import Chromatin.Data.RpluginName (RpluginName(RpluginName)) import Chromatin.Data.RpluginSource (RpluginSource(Stack)) import Chromatin.Test.Unit (specWithDef) import Chromatin.Run (runRplugin) import qualified Chromatin.Run as RunRpluginResult (RunRpluginResult(Success)) import Config (vars) runSpec :: Chromatin () runSpec = do cwd <- getCurrentDirectory let rplugin = Rplugin (RpluginName "chromatin") (Stack cwd) result <- runRplugin rplugin _ <- vim_command "sleep 500m" exists <- vim_call_function' "exists" [toObject ":CrmDiag"] liftIO $ assertEqual (RunRpluginResult.Success (ActiveRplugin 3 rplugin)) result liftIO $ assertEqual (toObject (2 :: Int)) exists test_run :: IO () test_run = vars >>= specWithDef runSpec