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