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 willibutz
18 ];
19 };
20
21 nodes.master =
22 { ... }:
23 {
24 services.postgresql = {
25 inherit package;
26 enable = true;
27 extensions =
28 ps: with ps; [
29 pgjwt
30 pgtap
31 ];
32 };
33 };
34
35 testScript =
36 { nodes, ... }:
37 let
38 sqlSU = "${nodes.master.services.postgresql.superUser}";
39 pgProve = "${pkgs.perlPackages.TAPParserSourceHandlerpgTAP}";
40 inherit (nodes.master.services.postgresql.package.pkgs) pgjwt;
41 in
42 ''
43 start_all()
44 master.wait_for_unit("postgresql")
45 master.succeed(
46 "${pkgs.sudo}/bin/sudo -u ${sqlSU} ${pgProve}/bin/pg_prove -d postgres -v -f ${pgjwt.src}/test.sql"
47 )
48 '';
49 };
50in
51genTests {
52 inherit makeTestFor;
53 filter = _: p: !p.pkgs.pgjwt.meta.broken;
54}