Restore timeout support. By default a 1-second timeout will be enforced when awaiting an event. This can be customized by supplying a timeout argument or by using the withTurbineTimeout wrapper function. Timeouts will always use wall clock time even when using a virtual time dispatcher.
Changed
When runTest (or any TestCoroutineScheduler) is in use, switch to the UnconfinedTestScheduler internally to ensure virtual time remains working.
0.10.0
Changed
Remove ReceiveTurbine.ignoreRemainingEvents from public API.
Fixed
Restore usage of Unconfined dispatcher preventing value conflation (as much as possible) so that intermediate values can always be observed.
0.9.0
FlowTurbine is now called ReceiveTurbine. This is the consume-only type with which you assert on events it has seen (historically only from a Flow).
New public Turbine type implements ReceiveTurbine but also allows you write events from a data source. Use this to implement fakes or collect events from non-Flow streams.
Extension functions on ReceiveChannel provide ReceiveTurbine-like assertion capabilities.
Support for legacy JS has been removed. Only JS IR is now supported.
Removed some APIs deprecated in 0.8.x.
0.8.0
Added
New testIn(CoroutineScope) API allows testing multiple flows without nesting lambdas.
New skip(Int) API can replace one or more calls to awaitItem() where the result is not needed.
Changed
Removed timeout parameter. The new runTest API from kotlinx.coroutines enforces a timeout automatically.
Documented that flows are implicitly canceled at the end of the test lambda. This has been the behavior for a few versions by accident, but now it is explicit and documented.
Cancel (and friends) are now suspending functions to ensure that non-canceleable coroutines complete and their effects are observed deterministically.
0.7.0
Changed
Moved APIs using Kotlin's experimental time to separate extensions. You can now use the library
without worrying about incompatibilities with Kotlin version or coroutine library version.
Restore timeout support. By default a 1-second timeout will be enforced when awaiting an event. This can be customized by supplying a timeout argument or by using the withTurbineTimeout wrapper function. Timeouts will always use wall clock time even when using a virtual time dispatcher.
Changed
When runTest (or any TestCoroutineScheduler) is in use, switch to the UnconfinedTestScheduler internally to ensure virtual time remains working.
[0.10.0]
Changed
Remove ReceiveTurbine.ignoreRemainingEvents from public API.
Fixed
Restore usage of Unconfined dispatcher preventing value conflation (as much as possible) so that intermediate values can always be observed.
[0.9.0]
FlowTurbine is now called ReceiveTurbine. This is the consume-only type with which you assert on events it has seen (historically only from a Flow).
New public Turbine type implements ReceiveTurbine but also allows you write events from a data source. Use this to implement fakes or collect events from non-Flow streams.
Extension functions on ReceiveChannel provide ReceiveTurbine-like assertion capabilities.
Support for legacy JS has been removed. Only JS IR is now supported.
Removed some APIs deprecated in 0.8.x.
[0.8.0]
Added
New testIn API allows testing multiple flows without nesting lambdas.
New skip(Int) API can replace one or more calls to awaitItem() where the result is not needed.
Changed
Removed timeout parameter. The new runTest API from kotlinx.coroutines enforces a timeout automatically.
Documented that flows are implicitly canceled at the end of the test lambda. This has been the behavior for a few versions by accident, but now it is explicit and documented.
Cancel (and friends) are now suspending functions to ensure that non-canceleable coroutines complete and their effects are observed deterministically.
[0.7.0]
Changed
Moved APIs using Kotlin's experimental time to separate extensions. You can now use the library
without worrying about incompatibilities with Kotlin version or coroutine library version.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps turbine from 0.6.1 to 0.11.0.
Release notes
Sourced from turbine's releases.
Changelog
Sourced from turbine's changelog.
Commits
c806049
Prepare version 0.11.00645f26
Small useless tweaksbd023f0
Copy Channel timeout tests into Flow and Flow-in-scope testsf118449
Restore timeouts with wallclock time (#140)65bfc13
Fix incorrect expectCompleteButWasErrorThrows testb0f10c6
Fix bugs with expectRecentItem and error eventsbfc4558
Centralize custom exception subtype for testsb4f99fa
Use test-specific unconfined when test scheduler is in use9b6c033
Prepare next development versionae9549e
Prepare version 0.10.0Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)