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

This commit is contained in:
NullCube
2025-07-14 08:49:32 -07:00
parent 8af12908c2
commit 8dd9c9197a
+36 -4
View File
@@ -11,9 +11,13 @@
{ config, pkgs, ... }:
{
services.anubis = {
defaultOptions.settings = {
DIFFICULTY = 3;
USER_DEFINED_DEFAULT = true;
defaultOptions = {
# Get default botPolicy
botPolicy = lib.importJSON "${config.services.anubis.package.src}/data/botPolicies.json";
settings = {
DIFFICULTY = 3;
USER_DEFINED_DEFAULT = true;
};
};
instances = {
"".settings = {
@@ -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"')
'';
}