Change test utilities not to use fixtures to avoid sharing state
Optimize test logic for simplicity and readability
Prefer exhaustiveness when checking status runtime exceptions
Use diffs to test expected behaviors instead of value comparisons
Propagate original client error into server status exception if
no cause is present when bidirectional calls are used
Don't use ReplaySubject because replay subject caching doesn't
simulate real-world scenarios accurately, use PublishSubject instead
and add small random variances when sending messages
As good side effect of these changes is that the spurious failures reproducible
both locally and on the CI seem to have disappeared.
As a follow-up to this pull request, I'm adding more test cases for
backpressure.
ReplaySubject
because replay subject caching doesn't simulate real-world scenarios accurately, usePublishSubject
instead and add small random variances when sending messagesAs good side effect of these changes is that the spurious failures reproducible both locally and on the CI seem to have disappeared.
As a follow-up to this pull request, I'm adding more test cases for backpressure.