test

inline suspend fun <S : MVIState, I : MVIIntent, A : MVIAction> LazyPlugin<S, I, A>.test(initial: S, timeTravel: TimeTravel<S, I, A> = TimeTravel(), crossinline configuration: StoreConfigurationBuilder.() -> Unit = { debuggable = true }, crossinline block: suspend PluginTestScope<S, I, A>.() -> Unit)

A function that runs a test on a StorePlugin.

  • This function suspends until the test is complete.

  • The plugin may launch new coroutines, which will cause the test to suspend until the test scope is exited.

  • The plugin may produce side effects which are tracked in the PluginTestScope.timeTravel property.

  • The plugin may change the state, which is accessible via the PluginTestScope.state property.

  • You can use TestPipelineContext which is provided with the PluginTestScope, to set up the plugin's environment for the test.