2024-08-28 15:28:55 +02:00
|
|
|
import ./make-test-python.nix (
|
|
|
|
{ lib, ... }:
|
2025-04-01 20:10:43 +02:00
|
|
|
{
|
2020-12-17 16:58:57 +01:00
|
|
|
name = "mailhog";
|
2024-08-28 15:28:55 +02:00
|
|
|
meta.maintainers = with lib.maintainers; [
|
|
|
|
jojosch
|
|
|
|
RTUnreal
|
|
|
|
];
|
2020-12-17 16:58:57 +01:00
|
|
|
|
2024-08-28 15:28:55 +02:00
|
|
|
nodes.machine =
|
|
|
|
{ pkgs, ... }:
|
|
|
|
{
|
2020-12-17 16:58:57 +01:00
|
|
|
services.mailhog.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
testScript = ''
|
|
|
|
start_all()
|
|
|
|
|
|
|
|
machine.wait_for_unit("mailhog.service")
|
2022-06-11 14:22:53 +02:00
|
|
|
machine.wait_for_open_port(1025)
|
|
|
|
machine.wait_for_open_port(8025)
|
2024-08-28 15:28:55 +02:00
|
|
|
# Test sendmail wrapper (this uses smtp, which tests the connection)
|
2025-04-16 10:09:10 +02:00
|
|
|
machine.succeed('printf "To: root@example.com\r\n\r\nthis is the body of the email" | sendmail -f sender@example.com')
|
2024-08-28 15:28:55 +02:00
|
|
|
res = machine.succeed(
|
2020-12-17 16:58:57 +01:00
|
|
|
"curl --fail http://localhost:8025/api/v2/messages"
|
|
|
|
)
|
2024-08-28 15:28:55 +02:00
|
|
|
assert all(msg in res for msg in ["this is the body of the email", "sender@example.com", "root@example.com"])
|
2020-12-17 16:58:57 +01:00
|
|
|
'';
|
|
|
|
}
|
|
|
|
)
|