summary refs log tree commit diff
diff options
context:
space:
mode:
authorJörg Thalheim <joerg@thalheim.io>2023-04-28 23:05:55 +0200
committerJörg Thalheim <joerg@thalheim.io>2023-05-01 20:51:11 +0200
commit077e950f7a6b6b52f49ec8ad6f1e4403d568711c (patch)
treec3392d8c7f4202584461775e3fefffa54dfd6d9c
parentd309952a5ddc3a97b7d126463281f63c3bb74505 (diff)
downloadnixpkgs-077e950f7a6b6b52f49ec8ad6f1e4403d568711c.tar
nixpkgs-077e950f7a6b6b52f49ec8ad6f1e4403d568711c.tar.gz
nixpkgs-077e950f7a6b6b52f49ec8ad6f1e4403d568711c.tar.bz2
nixpkgs-077e950f7a6b6b52f49ec8ad6f1e4403d568711c.tar.lz
nixpkgs-077e950f7a6b6b52f49ec8ad6f1e4403d568711c.tar.xz
nixpkgs-077e950f7a6b6b52f49ec8ad6f1e4403d568711c.tar.zst
nixpkgs-077e950f7a6b6b52f49ec8ad6f1e4403d568711c.zip
nixos/mediawiki: also test fcgi socket
-rw-r--r--nixos/modules/services/web-apps/mediawiki.nix10
-rw-r--r--nixos/tests/mediawiki.nix11
2 files changed, 20 insertions, 1 deletions
diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix
index ed997d7a406..b912d4e87f1 100644
--- a/nixos/modules/services/web-apps/mediawiki.nix
+++ b/nixos/modules/services/web-apps/mediawiki.nix
@@ -190,6 +190,16 @@ in
         description = lib.mdDoc "Which MediaWiki package to use.";
       };
 
+      finalPackage = mkOption {
+        type = types.package;
+        readOnly = true;
+        default = pkg;
+        defaultText = literalExpression "pkg";
+        description = lib.mdDoc ''
+          The final package used by the module. This is the package that will have extensions and skins installed.
+        '';
+      };
+
       name = mkOption {
         type = types.str;
         default = "MediaWiki";
diff --git a/nixos/tests/mediawiki.nix b/nixos/tests/mediawiki.nix
index 3d05591c680..52122755ad9 100644
--- a/nixos/tests/mediawiki.nix
+++ b/nixos/tests/mediawiki.nix
@@ -60,9 +60,18 @@ in
     nodes.machine = {
       services.mediawiki.webserver = "none";
     };
-    testScript = ''
+    testScript = { nodes, ... }: ''
       start_all()
       machine.wait_for_unit("phpfpm-mediawiki.service")
+      env = (
+        "SCRIPT_NAME=/index.php",
+        "SCRIPT_FILENAME=${nodes.machine.services.mediawiki.finalPackage}/share/mediawiki/index.php",
+        "REMOTE_ADDR=127.0.0.1",
+        'QUERY_STRING=title=Main_Page',
+        "REQUEST_METHOD=GET",
+      );
+      page = machine.succeed(f"{' '.join(env)} ${pkgs.fcgi}/bin/cgi-fcgi -bind -connect ${nodes.machine.services.phpfpm.pools.mediawiki.socket}")
+      assert "MediaWiki has been installed" in page, f"no 'MediaWiki has been installed' in:\n{page}"
     '';
   };
 }