mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2025-08-02 09:05:14 +02:00
test helpers: add functionality for sending emails (#3026)
* add functionality for filtering mail log by ID This was not planned, but as @polarthene mentioned in https://github.com/docker-mailserver/docker-mailserver/pull/3033#issuecomment-1407169569 , filtering the mail log by email ID would be (the only) correct approach for the Rspamd test (to eliminate race conditions). I asserted the currect state, and came to the conclusion that this might (or actually is) something we want in more than one place. So I went ahead and implemented a solution. The solution for acquiring the ID is a bit slower because it ensures the mail queue is empty _before_ and _after_ the mail is sent. This is the tradeoff one has to make if they want to send multiple emails in one test file and get their IDs. I hope you like this approach. I will provide another PR that adjusts our current tests to use these new functions. * added note about our helper functions in the docs I think our work for our custom test framework should be noted in the docs for newcomers to better understand what they should do. * adjust Rspamd test to use new helpers for sending * improve filter helpers further * add sanity check when acquiring mail ID * re-add `refute_output` to test which should now work well
This commit is contained in:
parent
5f94d7b36b
commit
f496897b09
4 changed files with 152 additions and 36 deletions
|
@ -26,6 +26,15 @@ The `test/` directory contains multiple directories. Among them is the `bats/` d
|
|||
|
||||
We are currently in the process of restructuring all of our tests. Tests will be moved into `test/tests/parallel/` and new tests should be placed there as well.
|
||||
|
||||
### Using Our Helper Functions
|
||||
|
||||
There are many functions that aid in writing tests. **We urge you to use them!** They will not only ease writing a test but they will also do their best to ensure there are no race conditions or other unwanted side effects. To learn about the functions we provide, you can:
|
||||
|
||||
1. look into existing tests for helper functions we already used
|
||||
2. look into the `test/helper/` directory which contains all files that can (and will) be loaded in test files
|
||||
|
||||
We encourage you to try both of the approaches mentioned above. To make understanding and using the helper functions easy, every function contains detailed documentation comments. Read them carefully!
|
||||
|
||||
### How Are Tests Run?
|
||||
|
||||
Tests are split into two categories:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue