vuls: init at 0.27.0
[NixPkgs.git] / nixos / tests / documize.nix
blob3624c0c56769c6e9fa2dc22e9cd67759187ee1c4
1 import ./make-test-python.nix ({ pkgs, lib, ...} : {
2   name = "documize";
3   meta = with pkgs.lib.maintainers; {
4     maintainers = [ ];
5   };
7   nodes.machine = { pkgs, ... }: {
8     environment.systemPackages = [ pkgs.jq ];
10     services.documize = {
11       enable = true;
12       port = 3000;
13       dbtype = "postgresql";
14       db = "host=localhost port=5432 sslmode=disable user=documize password=documize dbname=documize";
15     };
17     systemd.services.documize-server = {
18       after = [ "postgresql.service" ];
19       requires = [ "postgresql.service" ];
20     };
22     services.postgresql = {
23       enable = true;
24       initialScript = pkgs.writeText "psql-init" ''
25         CREATE ROLE documize WITH LOGIN PASSWORD 'documize';
26         CREATE DATABASE documize WITH OWNER documize;
27       '';
28     };
29   };
31   testScript = ''
32     start_all()
34     machine.wait_for_unit("documize-server.service")
35     machine.wait_for_open_port(3000)
37     dbhash = machine.succeed(
38         "curl -f localhost:3000 | grep 'property=\"dbhash' | grep -Po 'content=\"\\K[^\"]*'"
39     )
41     dbhash = dbhash.strip()
43     machine.succeed(
44         (
45             "curl -X POST"
46             " --data 'dbname=documize'"
47             " --data 'dbhash={}'"
48             " --data 'title=NixOS'"
49             " --data 'message=Docs'"
50             " --data 'firstname=Bob'"
51             " --data 'lastname=Foobar'"
52             " --data 'email=bob.foobar@nixos.org'"
53             " --data 'password=verysafe'"
54             " -f localhost:3000/api/setup"
55         ).format(dbhash)
56     )
58     machine.succeed(
59         'test "$(curl -f localhost:3000/api/public/meta | jq ".title" | xargs echo)" = "NixOS"'
60     )
61   '';