1import ./make-test.nix ({ pkgs, ... } :
2let
3 role = "test";
4 password = "secret";
5 conn = "local";
6in
7{
8 name = "pgmanage";
9 meta = with pkgs.stdenv.lib.maintainers; {
10 maintainers = [ basvandijk ];
11 };
12 nodes = {
13 one = { config, pkgs, ... }: {
14 services = {
15 postgresql = {
16 enable = true;
17 initialScript = pkgs.writeText "pg-init-script" ''
18 CREATE ROLE ${role} SUPERUSER LOGIN PASSWORD '${password}';
19 '';
20 };
21 pgmanage = {
22 enable = true;
23 connections = {
24 "${conn}" = "hostaddr=127.0.0.1 port=${toString config.services.postgresql.port} dbname=postgres";
25 };
26 };
27 };
28 };
29 };
30
31 testScript = ''
32 startAll;
33 $one->waitForUnit("default.target");
34 $one->requireActiveUnit("pgmanage.service");
35
36 # Test if we can log in.
37 $one->waitUntilSucceeds("curl 'http://localhost:8080/pgmanage/auth' --data 'action=login&connname=${conn}&username=${role}&password=${password}' --fail");
38 '';
39})