Provides a test backend (aka test mode) #117
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.
fixes #43
Two approaches were suggested in the issue:
The synchronous job pattern is used elsewhere and provides convenience for integration testing. A developer can then test "a user clicks this button and an email is sent to them". However it also adds code to the worker and runner -- something I try to avoid if at all possible to keep mosquito as fast as possible.
I've chosen to implement a testing backend which can be activated in the testing setup code for a project and all enqueues will simply get stored for later inspection / assertion. This avoids adding test_mode=true? checks to worker code. For situations where you need to test the affects of a job, use #run as usual.
It'll look like this:
Then in your tests:
This is a bare bones test helper, but I think it'll save me and other folks some headache.