{-# options_haddock prune, hide #-}
module Ribosome.Test.Examples.Example1 where
import Polysemy.Test
import Ribosome
import Ribosome.Api
import Ribosome.Test
store ::
Member (Rpc !! RpcError) r =>
Args ->
Handler r ()
store :: forall (r :: EffectRow).
Member (Resumable RpcError Rpc) r =>
Args -> Handler r ()
store (Args Text
msg) =
Sem (Rpc : Stop Report : r) () -> Sem (Stop Report : r) ()
forall (r :: EffectRow) a.
Member (Resumable RpcError Rpc) r =>
Sem (Rpc : r) a -> Sem r ()
ignoreRpcError do
Text -> Text -> Sem (Rpc : Stop Report : r) ()
forall p_1 (r :: EffectRow).
(Member Rpc r, MsgpackEncode p_1) =>
Text -> p_1 -> Sem r ()
nvimSetVar Text
"message" Text
msg
test_direct :: UnitTest
test_direct :: UnitTest
test_direct =
HasCallStack => Sem EmbedStack () -> UnitTest
Sem EmbedStack () -> UnitTest
testEmbed_ do
Args
-> Handler
'[Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
()
forall (r :: EffectRow).
Member (Resumable RpcError Rpc) r =>
Args -> Handler r ()
store Args
"test directly"
Text
-> Text
-> Handler
'[Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
()
forall a (m :: * -> *) (r :: EffectRow).
(Monad m, Eq a, Show a, HasCallStack, Member (Hedgehog m) r) =>
a -> a -> Sem r ()
assertEq Text
"test directly" (Text
-> Handler
'[Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
())
-> Sem
'[Stop Report, Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
Text
-> Handler
'[Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
()
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< forall a (r :: EffectRow).
(Member Rpc r, MsgpackDecode a) =>
Text -> Sem r a
nvimGetVar @Text Text
"message"
test_rpc :: UnitTest
test_rpc :: UnitTest
test_rpc =
HasCallStack =>
[RpcHandler EmbedHandlerStack] -> Sem EmbedStack () -> UnitTest
[RpcHandler EmbedHandlerStack] -> Sem EmbedStack () -> UnitTest
testPlugin_ [RpcName
-> Execution
-> (Args
-> Handler
'[Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
())
-> RpcHandler
'[Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
forall (r :: EffectRow) h.
(HandlerCodec h r, CommandHandler OptionStateZero h) =>
RpcName -> Execution -> h -> RpcHandler r
rpcCommand RpcName
"Store" Execution
Sync Args
-> Handler
'[Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
()
forall (r :: EffectRow).
Member (Resumable RpcError Rpc) r =>
Args -> Handler r ()
store] do
Text
-> Handler
'[Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
()
forall (r :: EffectRow). Member Rpc r => Text -> Sem r ()
nvimCommand Text
"Store test RPC"
Text
-> Text
-> Handler
'[Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
()
forall a (m :: * -> *) (r :: EffectRow).
(Monad m, Eq a, Show a, HasCallStack, Member (Hedgehog m) r) =>
a -> a -> Sem r ()
assertEq Text
"test RPC" (Text
-> Handler
'[Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
())
-> Sem
'[Stop Report, Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
Text
-> Handler
'[Stop RpcError, Scratch, Settings, Rpc,
Resumable RpcError Scratch, Resumable SettingError Settings,
Resumable Report VariableWatcher, Resumable Report Handlers, Log,
DataLog LogReport, Resumable RpcError Rpc,
Resumable RpcError (Responses RequestId Response),
Events (OutChan Event) Event,
PScoped () (EventChan Event) (Consume Event), Reports,
Events (OutChan RpcMessage) RpcMessage,
PScoped () (EventChan RpcMessage) (Consume RpcMessage),
Process RpcMessage (Either Text RpcMessage), UserError,
Reader PluginName, Log, Tagged "stderr" Log, Tagged "file" Log,
Reader LogConfig, Reader HostConfig, Time Time Date, Log,
Mask Restoration, Mask Restoration, GatesIO, Race, Async,
Error BootError, Test, Fail, Error TestError, Hedgehog IO,
Error Failure, Embed IO, Resource, Final IO]
()
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< forall a (r :: EffectRow).
(Member Rpc r, MsgpackDecode a) =>
Text -> Sem r a
nvimGetVar @Text Text
"message"