diff options
Diffstat (limited to 'nixpkgs/nixos/tests/documize.nix')
-rw-r--r-- | nixpkgs/nixos/tests/documize.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/documize.nix b/nixpkgs/nixos/tests/documize.nix new file mode 100644 index 000000000000..8b852a4f7795 --- /dev/null +++ b/nixpkgs/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"'); + ''; +}) |