ribosome-host-0.9.9.9: test/Ribosome/Host/Test/CommandModsTest.hs
module Ribosome.Host.Test.CommandModsTest where
import Conc (interpretAtomic)
import Polysemy.Test (UnitTest, assertJust)
import Ribosome.Host.Api.Effect (nvimCommand, nvimGetVar, nvimSetVar)
import Ribosome.Host.Data.CommandMods (CommandMods (CommandMods))
import Ribosome.Host.Data.Execution (Execution (Sync))
import Ribosome.Host.Data.Report (resumeReport)
import Ribosome.Host.Data.RpcError (RpcError)
import Ribosome.Host.Data.RpcHandler (Handler, RpcHandler)
import Ribosome.Host.Effect.Rpc (Rpc)
import Ribosome.Host.Embed (embedNvim)
import Ribosome.Host.Handler (rpcCommand)
import Ribosome.Host.Unit.Run (runTest)
var :: Text
var =
"test_var"
mods ::
Member (Rpc !! RpcError) r =>
CommandMods ->
Handler r ()
mods = \case
CommandMods m ->
resumeReport (nvimSetVar var m)
handlers ::
∀ r .
Members [AtomicState Int, Rpc !! RpcError] r =>
[RpcHandler r]
handlers =
[
rpcCommand "Mods" Sync mods
]
test_mods :: UnitTest
test_mods =
runTest $ interpretAtomic 0 $ embedNvim handlers do
nvimCommand "belowright silent lockmarks Mods"
assertJust @Text "belowright lockmarks silent" =<< nvimGetVar var