about summary refs log tree commit diff stats
path: root/tests/by-name/em/email/test.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-03-04 21:22:01 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-03-09 13:44:37 +0100
commitb06342ad736a21355f54a1bfd21b95d6817b4c78 (patch)
tree65fecd7e80140feed1b8d4fc9a2a87790aabea6e /tests/by-name/em/email/test.nix
parentmodules/stalwart-mail-free: Remove all `security` dependent checks if it's null (diff)
downloadnixos-server-b06342ad736a21355f54a1bfd21b95d6817b4c78.zip
test/email-ip: Rename from the general `email` test
Diffstat (limited to 'tests/by-name/em/email/test.nix')
-rw-r--r--tests/by-name/em/email/test.nix173
1 files changed, 0 insertions, 173 deletions
diff --git a/tests/by-name/em/email/test.nix b/tests/by-name/em/email/test.nix
deleted file mode 100644
index 590136e..0000000
--- a/tests/by-name/em/email/test.nix
+++ /dev/null
@@ -1,173 +0,0 @@
-{
-  nixos-lib,
-  pkgsUnstable,
-  nixpkgs-unstable,
-  vhackPackages,
-  pkgs,
-  extraModules,
-  nixLib,
-  ...
-}: let
-  domain = "mail.server.test";
-
-  scripts = {
-    checkEmailEmpty = pkgs.writeShellScript "assert-empty-emails" ''
-      set -xe
-
-      # fetchmail returns EXIT_CODE 1 when no new mail
-      fetchmail --nosslcertck --verbose >&2 || [ "$?" -eq 1 ] || {
-        echo "Expected exit code 1, but got '$exit_code'"
-        exit 1
-      }
-    '';
-  };
-
-  mkUser = user: {nodes, ...}: let
-    domainIp = nodes.server.networking.primaryIPAddress;
-  in {
-    environment.systemPackages = with pkgs; [
-      fetchmail
-      msmtp
-      procmail
-    ];
-
-    users.users."${user}" = {isNormalUser = true;};
-
-    systemd.tmpfiles.rules = [
-      "d /home/${user}/mail         0700 ${user} users - -"
-      "L /home/${user}/.fetchmailrc -    -       -     - /etc/homeSetup/.fetchmailrc"
-      "L /home/${user}/.procmailrc  -    -       -     - /etc/homeSetup/.procmailrc"
-      "L /home/${user}/.msmtprc     -    -       -     - /etc/homeSetup/.msmtprc"
-    ];
-
-    environment.etc = {
-      "homeSetup/.fetchmailrc" = {
-        text = ''
-          poll "${domainIp}" protocol IMAP
-            username "${user}"
-            password "${user}-password"
-            ssl
-            mda procmail;
-        '';
-        mode = "0600";
-        inherit user;
-      };
-      "homeSetup/.procmailrc" = {
-        text = ''
-          DEFAULT=$HOME/mail
-        '';
-        mode = "0600";
-        inherit user;
-      };
-      "homeSetup/.msmtprc" = {
-        text = ''
-          account        ${user}
-          host           ${domainIp}
-          port           465
-          from           ${user}@${domain}
-          user           ${user}
-          password       ${user}-password
-          auth           on
-          tls            on
-          tls_starttls   off
-        '';
-        mode = "0600";
-        inherit user;
-      };
-    };
-  };
-in
-  nixos-lib.runTest {
-    hostPkgs = pkgs; # the Nixpkgs package set used outside the VMs
-
-    name = "email";
-
-    node = {
-      specialArgs = {inherit pkgsUnstable vhackPackages nixpkgs-unstable nixLib;};
-
-      # Use the nixpkgs as constructed by the `nixpkgs.*` options
-      pkgs = null;
-    };
-
-    nodes = {
-      server = {config, ...}: {
-        imports =
-          extraModules
-          ++ [
-            ../../../../modules
-          ];
-
-        vhack = {
-          nginx = {
-            enable = true;
-            selfsign = true;
-          };
-
-          stalwart-mail = {
-            enable = true;
-            fqdn = domain;
-            security = null;
-            openFirewall = true;
-            principals = [
-              {
-                class = "individual";
-                name = "alice";
-                secret = "alice-password";
-                email = ["alice@${domain}"];
-              }
-              {
-                class = "individual";
-                name = "bob";
-                secret = "bob-password";
-                email = ["bob@${domain}"];
-              }
-            ];
-          };
-        };
-      };
-
-      alice = mkUser "alice";
-      bob = mkUser "bob";
-    };
-
-    testScript = {...}:
-    /*
-    python
-    */
-    ''
-      start_all()
-
-      server.wait_for_unit("stalwart-mail.service")
-      server.wait_for_open_port(993) # imap
-      server.wait_for_open_port(465) # smtp
-
-      with subtest("Both start without mail"):
-        alice.succeed("sudo -u alice ${scripts.checkEmailEmpty}")
-        bob.succeed("sudo -u bob ${scripts.checkEmailEmpty}")
-
-      with subtest("Alice can send an email to bob"):
-        alice.succeed("sudo -u alice ${pkgs.writeShellScript "alice-send" ''
-        set -xe
-
-        cat << EOF | msmtp --debug --account alice --tls-certcheck=off bob@${domain} >&2
-        Hi Bob!
-
-        This is an email.
-        It contains a subject and a body.
-
-        ALICE
-        EOF
-      ''}")
-        bob.succeed("sudo -u bob ${pkgs.writeShellScript "bob-receive" ''
-        set -xe
-
-        fetchmail --nosslcertck --verbose >&2 || {
-          echo New Mail did not arrive
-          exit 1
-        }
-      ''}")
-
-      server.copy_from_vm("/var/lib/", "server")
-      bob.copy_from_vm("/home/bob/mail", "bob")
-    '';
-  }