import ./make-test-python.nix (
  { pkgs, lib, ... }:
  let
    certs = import ./common/acme/server/snakeoil-certs.nix;
    domain = certs.domain;

    user = "testuser";
    pass = "hunter2";
  in
  {
    name = "soju";
    meta.maintainers = [ ];

    nodes.machine =
      { ... }:
      {
        services.soju = {
          enable = true;
          adminSocket.enable = true;
          hostName = domain;
          tlsCertificate = certs.${domain}.cert;
          tlsCertificateKey = certs.${domain}.key;
        };
      };

    testScript = ''
      start_all()

      machine.wait_for_unit("soju")
      machine.wait_for_file("/run/soju/admin")

      machine.succeed("sojuctl user create -username ${user} -password ${pass}")
    '';
  }
)