1import ./make-test.nix ({ pkgs, lib, ...}:
2let
3 test = with pkgs; runCommand "patch-test" {
4 nativeBuildInputs = [ pgjwt ];
5 }
6 ''
7 sed -e '12 i CREATE EXTENSION pgcrypto;\nCREATE EXTENSION pgtap;\nSET search_path TO tap,public;' ${pgjwt.src}/test.sql > $out;
8 '';
9in
10with pkgs; {
11 name = "pgjwt";
12 meta = with lib.maintainers; {
13 maintainers = [ spinus willibutz ];
14 };
15
16 nodes = {
17 master = { pkgs, config, ... }:
18 {
19 services.postgresql = {
20 enable = true;
21 extraPlugins = [ pgjwt pgtap ];
22 };
23 };
24 };
25
26 testScript = { nodes, ... }:
27 let
28 sqlSU = "${nodes.master.config.services.postgresql.superUser}";
29 pgProve = "${pkgs.perlPackages.TAPParserSourceHandlerpgTAP}";
30 in
31 ''
32 startAll;
33 $master->waitForUnit("postgresql");
34 $master->copyFileFromHost("${test}","/tmp/test.sql");
35 $master->succeed("${pkgs.sudo}/bin/sudo -u ${sqlSU} PGOPTIONS=--search_path=tap,public ${pgProve}/bin/pg_prove -d postgres -v -f /tmp/test.sql");
36 '';
37})