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)