mailhog: add simple test

Changed files
+25
nixos
+1
nixos/tests/all-tests.nix
···
magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {};
magnetico = handleTest ./magnetico.nix {};
mailcatcher = handleTest ./mailcatcher.nix {};
+
mailhog = handleTest ./mailhog.nix {};
mariadb-galera-mariabackup = handleTest ./mysql/mariadb-galera-mariabackup.nix {};
mariadb-galera-rsync = handleTest ./mysql/mariadb-galera-rsync.nix {};
matomo = handleTest ./matomo.nix {};
+24
nixos/tests/mailhog.nix
···
+
import ./make-test-python.nix ({ lib, ... }: {
+
name = "mailhog";
+
meta.maintainers = with lib.maintainers; [ jojosch ];
+
+
machine = { pkgs, ... }: {
+
services.mailhog.enable = true;
+
+
environment.systemPackages = with pkgs; [ swaks ];
+
};
+
+
testScript = ''
+
start_all()
+
+
machine.wait_for_unit("mailhog.service")
+
machine.wait_for_open_port("1025")
+
machine.wait_for_open_port("8025")
+
machine.succeed(
+
'echo "this is the body of the email" | swaks --to root@example.org --body - --server localhost:1025'
+
)
+
assert "this is the body of the email" in machine.succeed(
+
"curl --fail http://localhost:8025/api/v2/messages"
+
)
+
'';
+
})