docker-mailserver/test/config
Brennan Kinney 1024e0ccf2
tests: Extract some test cases out from tests.bats (#2980)
While working on tests, I noticed that some of the configs being mounted were adding a few seconds to the start-up time of each container. Notably `postfix-*` and `dovecot.conf` config files, which have been extracted out into their own tests with those files moved into a separate config folder.

`tests.bats` has been adapted to the common setup helper, and removed ENV no longer required to run those tests. Future PRs will extract out more tests.

Review may be easier via individual commit diffs and their associated commit messages describing relevant changes.

<details>
<summary>Commit message history for reference</summary>

```markdown
tests(chore): `tests.bats` - Remove redundant config
===
- ONEDIR volume support no longer relevant, this should have been dropped.
- ClamAV ENV no longer relevant as related tests have been extracted already.
- Same with the some of the SpamAssassin ENV config.
- `VIRUSMAILS_DELETE_DELAY` is tested in the file, but doesn't use this ENV at all? (runs a separate instance to test the ENV instead)
- Hostname updated in preparation for migrating to new test helpers. Relevant test lines referencing the hostname have likewise been updated.
```

```markdown
tests(chore): `tests.bats` - Convert to common setup
===
ENV remains the same, but required adding `ENABLE_AMAVIS=1` to bring that back, while the following became redundant as they're now defaulting to explicitly disabled in the helper method:

- `ENABLE_CLAMAV=0`
- `LOG_LEVEL=debug`
- `ENABLE_UPDATE_CHECK=0`
- `--hostname` + `--tty` + standard `--volume` lines
- `-e` option expanded to long-name `--env`, and all `\` dropped as no longer necessary.

`wait_for_finished_setup_in_container` is now redundant thanks to `common_container_setup`.
```

```markdown
tests(refactor): `tests.bats` - Extract out Dovecot Sieve tests
===
Sieve test files relocated into `test/config/dovecot-sieve/` for better isolation.

`dovecot.sieve` was not using the `reject` import, and we should not encourage it? (docs still do):
https://support.tigertech.net/sieve#the-sieve-reject-jmp
```

```markdown
tests: `tests.bats` - Extract out `checking smtp` tests
===
Migrated to the standard template and copied over the original test cases with `_run_in_container` adjustment only.

Identified minimum required ENV along with which mail is required for each test case.
```

```markdown
tests(refactor): `smtp-delivery.bats`
===
- Disabled `ENABLE_SRS=1`, not necessary for these tests.
- Added a SpamAssassin related test (X-SPAM headers) which requires `SA_TAG` to properly pass (or `ENABLE_SRS=1` to deliver into inbox).
- Many lines with double quotes changed to single quote wrapping, and moving out `grep` filters into `assert_output --partial` lines instead.
- Instead of `wc -l` making failures less helpful, switch to the helper method `_should_output_number_of_lines`
- x2 `assert_output` with different EOF style of usage was not actually failing on tests when it should. Changed to assert partial output of each expected line, and count the number of lines instead.
- Added additional comments related to the test cases with a `TODO` note about `SPAMASSASSIN_SPAM_TO_INBOX=1`.
- Revised test case names, including using the common prefix var.
- `tests.bats` no longer needs to send all these emails, no other test cases require them. This affects a test checking a `/mail` folder exists which has been corrected, and a quotas test case adjusted to expect an empty quota size output.
```

```markdown
tests: `tests.bats` - Extract out test cases for config overrides
===
Slight improvement by additionally matching `postconf` output to verify the setting is properly applied.
```

```markdown
tests: `tests.bats` - Extract out Amavis SpamAssassin test case
===
Removes the need for SpamAssassin ENV in `tests.bats`.
```

</details>
2023-01-07 11:36:20 +13:00
..
dovecot-lmtp fix: Make Dovecot aware of basic aliases in userdb for quota support + Use correct hash scheme in passdb configuration (#2248) 2021-11-01 14:20:22 +13:00
dovecot-sieve tests: Extract some test cases out from tests.bats (#2980) 2023-01-07 11:36:20 +13:00
duplicate_config_test Fix linter issue 2020-10-20 15:02:31 +02:00
opendkim formatting files according to standard (#1619) 2020-09-24 14:54:21 +02:00
override-configs tests: Extract some test cases out from tests.bats (#2980) 2023-01-07 11:36:20 +13:00
relay-hosts Update relayhost_map with virtual accounts too 2020-08-28 15:03:51 +02:00
smtp-delivery tests: Extract some test cases out from tests.bats (#2980) 2023-01-07 11:36:20 +13:00
templates build: cleaned up Makefile (#2833) 2022-10-17 08:08:04 +13:00
user-patches Remove unusual space from shebang line (#2834) 2022-10-17 10:40:09 +02:00
without-accounts Reinstane required (empty) folder 2020-10-18 02:25:03 +02:00
amavis.cf Allow user to provide Amavis configuration (#299) 2016-09-02 09:08:41 +02:00
fail2ban-fail2ban.cf Add ability to override fail2ban.conf with fail2ban.local values. (#769) 2017-12-07 19:27:31 +01:00
fail2ban-jail.cf firewall: replace iptables with nftables (#2505) 2022-04-05 15:13:59 +02:00
fetchmail.cf Solve Fetchmail imap idle issue (#10) 2021-01-17 10:39:09 +01:00
ldap-aliases.cf Added support for Dovecot and Postfix LDAP TLS (#800) 2018-01-25 22:38:41 +01:00
ldap-groups.cf Added support for Dovecot and Postfix LDAP TLS (#800) 2018-01-25 22:38:41 +01:00
ldap-users.cf Added support for Dovecot and Postfix LDAP TLS (#800) 2018-01-25 22:38:41 +01:00
postfix-regexp.cf support comments in .cf files 2020-05-06 22:59:55 +02:00
postfix-virtual.cf support comments in .cf files 2020-05-06 22:59:55 +02:00
whitelist_clients.local Include whitelist_clients.local in postgrey setup from config folder (#564) 2017-04-12 17:59:04 +02:00
whitelist_recipients Support for additional postgrey options (Close: #998, #999, #1046) 2018-11-01 19:32:36 +01:00