import ./make-test-python.nix {
  name = "blocky";

  nodes = {
    server = { pkgs, ... }: {
      environment.systemPackages = [ pkgs.dnsutils ];
      services.blocky = {
        enable = true;

        settings = {
          customDNS = {
            mapping = {
              "printer.lan" = "192.168.178.3,2001:0db8:85a3:08d3:1319:8a2e:0370:7344";
            };
          };
          upstream = {
            default = [ "8.8.8.8" "1.1.1.1" ];
          };
          port = 53;
          httpPort = 5000;
          logLevel = "info";
        };
      };
    };
  };

  testScript = ''
    with subtest("Service test"):
        server.wait_for_unit("blocky.service")
        server.wait_for_open_port(53)
        server.wait_for_open_port(5000)
        server.succeed("dig @127.0.0.1 +short -x 192.168.178.3 | grep -qF printer.lan")
  '';
}