2024-08-28 13:28:55 +00:00
|
|
|
import ./make-test-python.nix ({lib, ...}: {
|
2020-12-17 15:58:57 +00:00
|
|
|
name = "mailhog";
|
2024-08-28 13:28:55 +00:00
|
|
|
meta.maintainers = with lib.maintainers; [jojosch RTUnreal];
|
2020-12-17 15:58:57 +00:00
|
|
|
|
2024-08-28 13:28:55 +00:00
|
|
|
nodes.machine = {pkgs, ...}: {
|
2020-12-17 15:58:57 +00:00
|
|
|
services.mailhog.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
testScript = ''
|
|
|
|
start_all()
|
|
|
|
|
|
|
|
machine.wait_for_unit("mailhog.service")
|
2022-06-11 12:22:53 +00:00
|
|
|
machine.wait_for_open_port(1025)
|
|
|
|
machine.wait_for_open_port(8025)
|
2024-08-28 13:28:55 +00:00
|
|
|
# Test sendmail wrapper (this uses smtp, which tests the connection)
|
|
|
|
machine.succeed('printf "To: root@example.com\r\n\r\nthis is the body of the email" | sendmail -t -i -f sender@example.com')
|
|
|
|
res = machine.succeed(
|
2020-12-17 15:58:57 +00:00
|
|
|
"curl --fail http://localhost:8025/api/v2/messages"
|
|
|
|
)
|
2024-08-28 13:28:55 +00: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 15:58:57 +00:00
|
|
|
'';
|
|
|
|
})
|