about summary refs log tree commit diff
path: root/nixos/tests/web-apps
diff options
context:
space:
mode:
authorRaito Bezarius <masterancpp@gmail.com>2023-03-25 17:02:52 +0100
committerRaito Bezarius <masterancpp@gmail.com>2023-04-21 17:39:24 +0200
commitf341151cfa872ff8d80d3c00e090380920cda8c5 (patch)
tree9049075262b995cde4d87bb7722f2141788054af /nixos/tests/web-apps
parent51c5aae874bb78de29e8deb309147a1f026d818c (diff)
nixos/tests/pixelfed: init test
Diffstat (limited to 'nixos/tests/web-apps')
-rw-r--r--nixos/tests/web-apps/pixelfed/default.nix8
-rw-r--r--nixos/tests/web-apps/pixelfed/standard.nix38
2 files changed, 46 insertions, 0 deletions
diff --git a/nixos/tests/web-apps/pixelfed/default.nix b/nixos/tests/web-apps/pixelfed/default.nix
new file mode 100644
index 0000000000000..4464ebe434865
--- /dev/null
+++ b/nixos/tests/web-apps/pixelfed/default.nix
@@ -0,0 +1,8 @@
+{ system ? builtins.currentSystem, handleTestOn }:
+let
+  supportedSystems = [ "x86_64-linux" "i686-linux" ];
+
+in
+{
+  standard = handleTestOn supportedSystems ./standard.nix { inherit system; };
+}
diff --git a/nixos/tests/web-apps/pixelfed/standard.nix b/nixos/tests/web-apps/pixelfed/standard.nix
new file mode 100644
index 0000000000000..9260e27af960d
--- /dev/null
+++ b/nixos/tests/web-apps/pixelfed/standard.nix
@@ -0,0 +1,38 @@
+import ../../make-test-python.nix ({pkgs, ...}:
+{
+  name = "pixelfed-standard";
+  meta.maintainers = with pkgs.lib.maintainers; [ raitobezarius ];
+
+  nodes = {
+    server = { pkgs, ... }: {
+      services.pixelfed = {
+        enable = true;
+        domain = "pixelfed.local";
+        # Configure NGINX.
+        nginx = {};
+        secretFile = (pkgs.writeText "secrets.env" ''
+          # Snakeoil secret, can be any random 32-chars secret via CSPRNG.
+          APP_KEY=adKK9EcY8Hcj3PLU7rzG9rJ6KKTOtYfA
+        '');
+        settings."FORCE_HTTPS_URLS" = false;
+      };
+    };
+  };
+
+  testScript = ''
+    # Wait for Pixelfed PHP pool
+    server.wait_for_unit("phpfpm-pixelfed.service")
+    # Wait for NGINX
+    server.wait_for_unit("nginx.service")
+    # Wait for HTTP port
+    server.wait_for_open_port(80)
+    # Access the homepage.
+    server.succeed("curl -H 'Host: pixelfed.local' http://localhost")
+    # Create an account
+    server.succeed("pixelfed-manage user:create --name=test --username=test --email=test@test.com --password=test")
+    # Create a OAuth token.
+    # TODO: figure out how to use it to send a image/toot
+    # server.succeed("pixelfed-manage passport:client --personal")
+    # server.succeed("curl -H 'Host: pixefed.local' -H 'Accept: application/json' -H 'Authorization: Bearer secret' -F'status'='test' http://localhost/api/v1/statuses")
+  '';
+})