{ lib, ... }:

{
  name = "honk-server";

  nodes = {
    machine = { pkgs, ... }: {
      services.honk = {
        enable = true;
        host = "0.0.0.0";
        port = 8080;
        username = "username";
        passwordFile = "${pkgs.writeText "honk-password" "secure"}";
        servername = "servername";
      };
    };
  };

  testScript = ''
    machine.start()
    machine.wait_for_unit("honk.service")
    machine.wait_for_open_port(8080)

    machine.stop_job("honk")
    machine.wait_for_closed_port(8080)

    machine.start_job("honk")
    machine.wait_for_open_port(8080)
  '';

  meta.maintainers = [ lib.maintainers.drupol ];
}