aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/tests/gotify-server.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/tests/gotify-server.nix')
-rw-r--r--nixpkgs/nixos/tests/gotify-server.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/gotify-server.nix b/nixpkgs/nixos/tests/gotify-server.nix
new file mode 100644
index 00000000000..c6e00686aed
--- /dev/null
+++ b/nixpkgs/nixos/tests/gotify-server.nix
@@ -0,0 +1,45 @@
+import ./make-test-python.nix ({ pkgs, lib, ...} : {
+ name = "gotify-server";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ ma27 ];
+ };
+
+ machine = { pkgs, ... }: {
+ environment.systemPackages = [ pkgs.jq ];
+
+ services.gotify = {
+ enable = true;
+ port = 3000;
+ };
+ };
+
+ testScript = ''
+ machine.start()
+
+ machine.wait_for_unit("gotify-server.service")
+ machine.wait_for_open_port(3000)
+
+ token = machine.succeed(
+ "curl --fail -sS -X POST localhost:3000/application -F name=nixos "
+ + '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" '
+ + "| jq .token | xargs echo -n"
+ )
+
+ usertoken = machine.succeed(
+ "curl --fail -sS -X POST localhost:3000/client -F name=nixos "
+ + '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" '
+ + "| jq .token | xargs echo -n"
+ )
+
+ machine.succeed(
+ f"curl --fail -sS -X POST 'localhost:3000/message?token={token}' -H 'Accept: application/json' "
+ + "-F title=Gotify -F message=Works"
+ )
+
+ title = machine.succeed(
+ f"curl --fail -sS 'localhost:3000/message?since=0&token={usertoken}' | jq '.messages|.[0]|.title' | xargs echo -n"
+ )
+
+ assert title == "Gotify"
+ '';
+})