about summary refs log tree commit diff
path: root/nixos/tests
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2019-04-08 22:34:11 +0000
committerGitHub <noreply@github.com>2019-04-08 22:34:11 +0000
commita58ab8fc056f11cd4f94f78f9da991d945890ecd (patch)
tree4f37aaacb1a7860543743ec97af9106f777ec841 /nixos/tests
parent436b9251566e74e6dd7801e50a31fecf7d6d412c (diff)
parentacbb74ed18c5e23893f18d5ac2c5eb9b643e3f64 (diff)
downloadnixlib-a58ab8fc056f11cd4f94f78f9da991d945890ecd.tar
nixlib-a58ab8fc056f11cd4f94f78f9da991d945890ecd.tar.gz
nixlib-a58ab8fc056f11cd4f94f78f9da991d945890ecd.tar.bz2
nixlib-a58ab8fc056f11cd4f94f78f9da991d945890ecd.tar.lz
nixlib-a58ab8fc056f11cd4f94f78f9da991d945890ecd.tar.xz
nixlib-a58ab8fc056f11cd4f94f78f9da991d945890ecd.tar.zst
nixlib-a58ab8fc056f11cd4f94f78f9da991d945890ecd.zip
Merge pull request #58398 from Ma27/package-documize
documize-community: init at 2.2.1
Diffstat (limited to 'nixos/tests')
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/documize.nix58
2 files changed, 59 insertions, 0 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index b366f019f6e0..66a877e8bae7 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -65,6 +65,7 @@ in
   docker-registry = handleTest ./docker-registry.nix {};
   docker-tools = handleTestOn ["x86_64-linux"] ./docker-tools.nix {};
   docker-tools-overlay = handleTestOn ["x86_64-linux"] ./docker-tools-overlay.nix {};
+  documize = handleTest ./documize.nix {};
   dovecot = handleTest ./dovecot.nix {};
   # ec2-config doesn't work in a sandbox as the simulated ec2 instance needs network access
   #ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
diff --git a/nixos/tests/documize.nix b/nixos/tests/documize.nix
new file mode 100644
index 000000000000..8b852a4f7795
--- /dev/null
+++ b/nixos/tests/documize.nix
@@ -0,0 +1,58 @@
+import ./make-test.nix ({ pkgs, lib, ...} : {
+  name = "documize";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ ma27 ];
+  };
+
+  machine = { pkgs, ... }: {
+    environment.systemPackages = [ pkgs.jq ];
+
+    services.documize = {
+      enable = true;
+      port = 3000;
+      dbtype = "postgresql";
+      db = "host=localhost port=5432 sslmode=disable user=documize password=documize dbname=documize";
+    };
+
+    systemd.services.documize-server = {
+      after = [ "postgresql.service" ];
+      requires = [ "postgresql.service" ];
+    };
+
+    services.postgresql = {
+      enable = true;
+      initialScript = pkgs.writeText "psql-init" ''
+        CREATE ROLE documize WITH LOGIN PASSWORD 'documize';
+        CREATE DATABASE documize WITH OWNER documize;
+      '';
+    };
+  };
+
+  testScript = ''
+    startAll;
+
+    $machine->waitForUnit("documize-server.service");
+    $machine->waitForOpenPort(3000);
+
+    my $dbhash = $machine->succeed("curl -f localhost:3000 "
+                                  . " | grep 'property=\"dbhash' "
+                                  . " | grep -Po 'content=\"\\K[^\"]*'"
+                                  );
+
+    chomp($dbhash);
+
+    $machine->succeed("curl -X POST "
+                      . "--data 'dbname=documize' "
+                      . "--data 'dbhash=$dbhash' "
+                      . "--data 'title=NixOS' "
+                      . "--data 'message=Docs' "
+                      . "--data 'firstname=John' "
+                      . "--data 'lastname=Doe' "
+                      . "--data 'email=john.doe\@nixos.org' "
+                      . "--data 'password=verysafe' "
+                      . "-f localhost:3000/api/setup"
+                    );
+
+    $machine->succeed('test "$(curl -f localhost:3000/api/public/meta | jq ".title" | xargs echo)" = "NixOS"');
+  '';
+})