1{
2 pkgs,
3 makeTest,
4 genTests,
5}:
6
7let
8 inherit (pkgs) lib;
9
10 makeTestFor =
11 package:
12 makeTest {
13 name = "pgjwt-${package.name}";
14 meta = with lib.maintainers; {
15 maintainers = [
16 spinus
17 ];
18 };
19
20 nodes.master =
21 { ... }:
22 {
23 services.postgresql = {
24 inherit package;
25 enable = true;
26 extensions =
27 ps: with ps; [
28 pgjwt
29 pgtap
30 ];
31 };
32 };
33
34 testScript =
35 { nodes, ... }:
36 let
37 sqlSU = "${nodes.master.services.postgresql.superUser}";
38 pgProve = "${pkgs.perlPackages.TAPParserSourceHandlerpgTAP}";
39 inherit (nodes.master.services.postgresql.package.pkgs) pgjwt;
40 in
41 ''
42 start_all()
43 master.wait_for_unit("postgresql.target")
44 master.succeed(
45 "${pkgs.sudo}/bin/sudo -u ${sqlSU} ${pgProve}/bin/pg_prove -d postgres -v -f ${pgjwt.src}/test.sql"
46 )
47 '';
48 };
49in
50genTests {
51 inherit makeTestFor;
52 filter = _: p: !p.pkgs.pgjwt.meta.broken;
53}