mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-11-10 17:54:53 +01:00
43 lines
1.3 KiB
Nix
43 lines
1.3 KiB
Nix
import ./make-test-python.nix (
|
|
{ pkgs, ... }:
|
|
{
|
|
name = "ntfy-sh";
|
|
|
|
nodes.machine =
|
|
{ ... }:
|
|
{
|
|
services.ntfy-sh.enable = true;
|
|
services.ntfy-sh.settings.base-url = "http://localhost:2586";
|
|
|
|
# Create a user with user:123
|
|
services.ntfy-sh.environmentFile = pkgs.writeText "ntfy.env" ''
|
|
NTFY_AUTH_DEFAULT_ACCESS='deny-all'
|
|
NTFY_AUTH_USERS='user:$2a$12$W2v7IQhkayvJOYRpg6YEruxj.jUO3R2xQOU7s1vC3HzLLB9gSKJ9.:user'
|
|
NTFY_AUTH_ACCESS='user:test:rw'
|
|
'';
|
|
};
|
|
|
|
testScript = ''
|
|
import json
|
|
|
|
msg = "Test notification"
|
|
|
|
machine.wait_for_unit("multi-user.target")
|
|
|
|
machine.wait_for_open_port(2586)
|
|
|
|
machine.succeed(f"curl -u user:1234 -d '{msg}' localhost:2586/test")
|
|
|
|
# If we have a user, receive a message
|
|
notif = json.loads(machine.succeed("curl -u user:1234 -s localhost:2586/test/json?poll=1"))
|
|
assert msg == notif["message"], "Wrong message"
|
|
|
|
# If we have no user, we should get forbidden, making sure the default access config works
|
|
notif = json.loads(machine.succeed("curl -s localhost:2586/test/json?poll=1"))
|
|
assert 403 == notif["http"], f"Should return 403, got {notif["http"]}"
|
|
|
|
machine.succeed("ntfy user list")
|
|
'';
|
|
}
|
|
)
|