Commit 8dd9c919 authored by NullCube's avatar NullCube
Browse files

nixos/tests/anubis: add testing for anubis botPolicy option

parent 8af12908
Loading
Loading
Loading
Loading
+36 −4
Original line number Diff line number Diff line
@@ -11,10 +11,14 @@
    { config, pkgs, ... }:
    {
      services.anubis = {
        defaultOptions.settings = {
        defaultOptions = {
          # Get default botPolicy
          botPolicy = lib.importJSON "${config.services.anubis.package.src}/data/botPolicies.json";
          settings = {
            DIFFICULTY = 3;
            USER_DEFINED_DEFAULT = true;
          };
        };
        instances = {
          "".settings = {
            TARGET = "http://localhost:8080";
@@ -38,11 +42,34 @@
            group = "nginx";
            settings.TARGET = "unix:///run/nginx/nginx.sock";
          };

          "botPolicy-default" = {
            botPolicy = null;
            settings.TARGET = "http://localhost:8080";
          };

          "botPolicy-file" = {
            settings = {
              TARGET = "http://localhost:8080";
              POLICY_FNAME = "/etc/anubis-botPolicy.json";
            };
          };
        };
      };

      # Empty json for testing
      environment.etc."anubis-botPolicy.json".text = lib.generators.toJSON { } {
        bots = [
          {
            name = "allow-all";
            user_agent_regex = ".*";
            action = "ALLOW";
          }
        ];
      };

      # support
      users.users.nginx.extraGroups = [ config.users.groups.anubis.name ];
      users.users.nginx.extraGroups = [ config.services.anubis.defaultOptions.group ];
      services.nginx = {
        enable = true;
        recommendedProxySettings = true;
@@ -115,5 +142,10 @@
    # Make sure defaults don't overwrite themselves
    machine.succeed('cat /run/current-system/etc/systemd/system/anubis.service | grep "DIFFICULTY=5"')
    machine.succeed('cat /run/current-system/etc/systemd/system/anubis-tcp.service | grep "DIFFICULTY=3"')

    # Check correct BotPolicy settings are applied
    machine.succeed('cat /run/current-system/etc/systemd/system/anubis.service | grep "POLICY_FNAME=/nix/store"')
    machine.fail('cat /run/current-system/etc/systemd/system/anubis-botPolicy-default.service | grep "POLICY_FNAME="')
    machine.succeed('cat /run/current-system/etc/systemd/system/anubis-botPolicy-file.service | grep "POLICY_FNAME=/etc/anubis-botPolicy.json"')
  '';
}