From 82d1dc4549f3ba079505b6ebaa266e6d04d1cce4 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Fri, 2 Oct 2026 00:27:50 +0200 Subject: tests/email/*: Rename to stalwart email tests These tests explicitly test our stalwart email module. --- tests/by-name/em/email-http/nodes/mail_server.nix | 57 ------------ tests/by-name/em/email-http/nodes/user.nix | 26 ------ tests/by-name/em/email-http/test.nix | 103 ---------------------- 3 files changed, 186 deletions(-) delete mode 100644 tests/by-name/em/email-http/nodes/mail_server.nix delete mode 100644 tests/by-name/em/email-http/nodes/user.nix delete mode 100644 tests/by-name/em/email-http/test.nix (limited to 'tests/by-name/em/email-http') diff --git a/tests/by-name/em/email-http/nodes/mail_server.nix b/tests/by-name/em/email-http/nodes/mail_server.nix deleted file mode 100644 index e94c4e9..0000000 --- a/tests/by-name/em/email-http/nodes/mail_server.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ - extraModules, - pkgs, - vhackPackages, -}: { - mkMailServer = serverName: principal: { - config, - lib, - nodes, - ... - }: { - imports = - extraModules - ++ [ - ../../../../../modules - ../../../../common/acme/client.nix - ]; - - environment.systemPackages = [ - pkgs.bind - pkgs.openssl - ]; - - networking.nameservers = lib.mkForce [ - nodes.name_server.networking.primaryIPAddress - nodes.name_server.networking.primaryIPv6Address - ]; - - age.identityPaths = ["${../../../../common/email/hostKey}"]; - - vhack = { - stalwart-mail = { - enable = true; - fqdn = "${serverName}.server.com"; - admin = "admin@${serverName}.server.com"; - security = { - dkimKeys = let - loadKey = name: { - dkimPublicKey = builtins.readFile (../../../../common/email/dkim + "/${name}/public"); - dkimPrivateKeyPath = ../../../../common/email/dkim + "/${name}/private.age"; - keyAlgorithm = "ed25519-sha256"; - }; - in { - "mail.server.com" = loadKey "mail1.server.com"; - "bob.com" = loadKey "bob.com"; - }; - verificationMode = "strict"; - }; - openFirewall = true; - principals = - if principal == null - then null - else [principal]; - }; - }; - }; -} diff --git a/tests/by-name/em/email-http/nodes/user.nix b/tests/by-name/em/email-http/nodes/user.nix deleted file mode 100644 index 73b9ff7..0000000 --- a/tests/by-name/em/email-http/nodes/user.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - pkgs, - vhackPackages, -}: { - mkUser = user: serverName: { - nodes, - lib, - ... - }: { - imports = [ - ../../../../common/acme/client.nix - ]; - - environment.systemPackages = [ - pkgs.bind - pkgs.openssl - ]; - - networking.nameservers = lib.mkForce [ - nodes.name_server.networking.primaryIPAddress - nodes.name_server.networking.primaryIPv6Address - ]; - - users.users."${user}" = {isNormalUser = true;}; - }; -} diff --git a/tests/by-name/em/email-http/test.nix b/tests/by-name/em/email-http/test.nix deleted file mode 100644 index 42fd22b..0000000 --- a/tests/by-name/em/email-http/test.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ - nixos-lib, - pkgsUnstable, - nixpkgs-unstable, - vhackPackages, - pkgs, - extraModules, - nixLib, - ... -}: let - mail_server = import ./nodes/mail_server.nix {inherit extraModules pkgs vhackPackages;}; - inherit (mail_server) mkMailServer; - user = import ./nodes/user.nix {inherit pkgs vhackPackages;}; - inherit (user) mkUser; -in - nixos-lib.runTest { - # Wait until we actually use stalwart again - meta.broken = true; - - hostPkgs = pkgs; # the Nixpkgs package set used outside the VMs - - name = "email-http"; - - node = { - specialArgs = {inherit pkgsUnstable vhackPackages nixpkgs-unstable nixLib;}; - - # Use the nixpkgs as constructed by the `nixpkgs.*` options - pkgs = null; - }; - - nodes = { - acme = { - nodes, - lib, - ... - }: { - imports = [ - ../../../common/acme/server.nix - ../../../common/dns/client.nix - ]; - }; - - name_server = {nodes, ...}: { - imports = - extraModules - ++ [ - ../../../common/acme/client.nix - ../../../common/dns/server.nix - ]; - - vhack.dns.zones = { - "mail.server.com" = { - SOA = { - nameServer = "ns"; - adminEmail = "admin@server.com"; - serial = 2025012301; - }; - useOrigin = false; - - A = [ - nodes.mail_server.networking.primaryIPAddress - ]; - AAAA = [ - nodes.mail_server.networking.primaryIPv6Address - ]; - }; - }; - }; - - mail_server = mkMailServer "mail" null; - - bob = mkUser "bob" "mail"; - }; - - # TODO(@bpeetz): This test should also test the http JMAP features of stalwart-mail. <2025-04-12> - testScript = _: let - acme = import ../../../common/acme {inherit pkgs;}; - in - acme.prepare ["mail_server" "bob"] - # Python - '' - mail_server.wait_for_unit("stalwart-mail.service") - mail_server.wait_for_open_port(993) # imap - mail_server.wait_for_open_port(465) # smtp - - bob.wait_for_unit("multi-user.target") - - with subtest("The mailserver successfully started all services"): - import json - def all_services_running(host): - (status, output) = host.systemctl("list-units --state=failed --plain --no-pager --output=json") - host_failed = json.loads(output) - assert len(host_failed) == 0, f"Expected zero failing services, but found: {json.dumps(host_failed, indent=4)}" - all_services_running(mail_server) - - with subtest("Bob can use the self-service interface"): - bob.succeed("${pkgs.writeShellScript "check-self-service" '' - curl mail.server.com --location --output /home/bob/output.html; - ''}") - - bob.copy_from_vm("/home/bob", "") - ''; - } -- cgit v1.3.1