at 25.11-pre 1.5 kB view raw
1import ../make-test-python.nix ( 2 { lib, pkgs, ... }: 3 { 4 name = "freshrss-pgsql"; 5 meta.maintainers = with lib.maintainers; [ 6 etu 7 stunkymonkey 8 ]; 9 10 nodes.machine = 11 { pkgs, ... }: 12 { 13 services.freshrss = { 14 enable = true; 15 baseUrl = "http://localhost"; 16 passwordFile = pkgs.writeText "password" "secret"; 17 dataDir = "/srv/freshrss"; 18 database = { 19 type = "pgsql"; 20 port = 5432; 21 user = "freshrss"; 22 passFile = pkgs.writeText "db-password" "db-secret"; 23 }; 24 }; 25 26 services.postgresql = { 27 enable = true; 28 ensureDatabases = [ "freshrss" ]; 29 ensureUsers = [ 30 { 31 name = "freshrss"; 32 ensureDBOwnership = true; 33 } 34 ]; 35 initialScript = pkgs.writeText "postgresql-password" '' 36 CREATE ROLE freshrss WITH LOGIN PASSWORD 'db-secret' CREATEDB; 37 ''; 38 }; 39 40 systemd.services."freshrss-config" = { 41 requires = [ "postgresql.service" ]; 42 after = [ "postgresql.service" ]; 43 }; 44 }; 45 46 testScript = '' 47 machine.wait_for_unit("multi-user.target") 48 machine.wait_for_open_port(5432) 49 machine.wait_for_open_port(80) 50 response = machine.succeed("curl -vvv -s -H 'Host: freshrss' http://localhost:80/i/") 51 assert '<title>Login · FreshRSS</title>' in response, "Login page didn't load successfully" 52 ''; 53 } 54)