at 23.11-pre 1.7 kB view raw
1import ./make-test-python.nix ({ pkgs, lib, ...} : { 2 name = "documize"; 3 meta = with pkgs.lib.maintainers; { 4 maintainers = [ ma27 ]; 5 }; 6 7 nodes.machine = { pkgs, ... }: { 8 environment.systemPackages = [ pkgs.jq ]; 9 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 }; 16 17 systemd.services.documize-server = { 18 after = [ "postgresql.service" ]; 19 requires = [ "postgresql.service" ]; 20 }; 21 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 }; 30 31 testScript = '' 32 start_all() 33 34 machine.wait_for_unit("documize-server.service") 35 machine.wait_for_open_port(3000) 36 37 dbhash = machine.succeed( 38 "curl -f localhost:3000 | grep 'property=\"dbhash' | grep -Po 'content=\"\\K[^\"]*'" 39 ) 40 41 dbhash = dbhash.strip() 42 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 ) 57 58 machine.succeed( 59 'test "$(curl -f localhost:3000/api/public/meta | jq ".title" | xargs echo)" = "NixOS"' 60 ) 61 ''; 62})