fix issues hidden by Unconfined Dispatcher #169
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This replaces the dispatcher used in tests with
Dispatchers.Default
. There was a combination of things at play here.OnActionTest
andCustomIsInStateDslTest
) was affected by an issue inFlowReduxStateMachine
. Because of the launch that is done to start the store and it usingMutableSharedFlow
for incoming actions, any action that is dispatched before the launch body executes was lost. So the tests relying on an action didn't work. In real world use cases this is probably not an issue because you don't start dispatching actions a few millisecods later. I've changed the implementation to aChannel
which will suspend thedispatch
until we start collecting the actions.expectNoEvents
does not suspend or anything to wait that there are no more events, it just checks that there is nothing in it's queue. Because of the async dispatch ofA1
the followingassertEquals
happens too early and the counter is still 0 because not evenonEnter
ofS1
finished running yet. I've changed the test to useGenericState
witch changing values so that we can wait for them withexpectItem
while still staying in the same state. The assertion thatonEnter
was only called once now happens after thetest
block when we know all invocations are done.fixes #128, closes #171