{-# OPTIONS_GHC -F -pgmF htfpp #-} module RiboSpec( htf_thisModulesTests, ) where import Control.Monad.IO.Class (liftIO) import Data.Bifunctor (Bifunctor(..)) import Data.Default (Default(def)) import Neovim import Ribosome.Api.Buffer import Ribosome.Control.Monad.Ribo import Ribosome.Test.Unit (unitSpec) import Test.Framework import UnliftIO.STM newtype Env = Env Int deriving (Eq, Show) rib :: RiboT Env (Doc AnsiStyle) [String] rib = do a <- nvim currentBufferContent nvim $ vim_command' "tabnew" return a riboSpec :: Ribo (TVar Env) () riboSpec = do let target = ["line 1", "line 2"] _ <- setCurrentBufferContent target content <- unsafeToNeovim $ first (const ()) rib liftIO $ assertEqual target content test_ribo :: IO () test_ribo = do t <- newTVarIO (Env 5) unitSpec def t riboSpec