proteome-0.3.17.0: test/f/AddSpec.hs
{-# OPTIONS_GHC -F -pgmF htfpp #-}
module AddSpec(
htf_thisModulesTests,
) where
import Control.Monad.IO.Class (liftIO)
import qualified Data.Map as Map (fromList)
import System.FilePath ((</>))
import Test.Framework
import Neovim (vim_call_function', vim_command', toObject)
import Ribosome.Api.Path (nvimCwd)
import Ribosome.Config.Setting (updateSetting)
import Ribosome.Control.Ribo (Ribo)
import qualified Proteome.Settings as S (projectBaseDirs)
import Proteome.Test.Functional (specWith, fixture)
import Config (vars)
addSpec :: Ribo env ()
addSpec = do
projectsDir <- fixture "projects"
updateSetting S.projectBaseDirs [projectsDir]
_ <- vim_call_function' "ProAddProject" [toObject $ Map.fromList [
("name", toObject "cilia"),
("tpe", toObject "haskell"),
("activate", toObject True)
]]
cwd <- nvimCwd
liftIO $ assertEqual (projectsDir </> "haskell" </> "cilia") cwd
test_addFunction :: IO ()
test_addFunction =
vars >>= specWith addSpec
addCommandSpec :: Ribo env ()
addCommandSpec = do
projectsDir <- fixture "projects"
updateSetting S.projectBaseDirs [projectsDir]
_ <- vim_command' "ProAdd! haskell/cilia"
cwd <- nvimCwd
liftIO $ assertEqual (projectsDir </> "haskell" </> "cilia") cwd
test_addCommand :: IO ()
test_addCommand =
vars >>= specWith addCommandSpec