at 17.09-beta 1.3 kB view raw
1import ./make-test.nix ({ pkgs, ...} : 2let 3 test = pkgs.writeText "test.sql" '' 4 CREATE EXTENSION pgcrypto; 5 CREATE EXTENSION pgjwt; 6 select sign('{"sub":"1234567890","name":"John Doe","admin":true}', 'secret'); 7 select * from verify('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ', 'secret'); 8 ''; 9in 10{ 11 name = "pgjwt"; 12 meta = with pkgs.stdenv.lib.maintainers; { 13 maintainers = [ spinus ]; 14 }; 15 16 nodes = { 17 master = 18 { pkgs, config, ... }: 19 20 { 21 services.postgresql = let mypg = pkgs.postgresql95; in { 22 enable = true; 23 package = mypg; 24 extraPlugins =[pkgs.pgjwt]; 25 initialScript = pkgs.writeText "postgresql-init.sql" 26 '' 27 CREATE ROLE postgres WITH superuser login createdb; 28 ''; 29 }; 30 }; 31 }; 32 33 testScript = '' 34 startAll; 35 $master->waitForUnit("postgresql"); 36 $master->succeed("timeout 10 bash -c 'while ! psql postgres -c \"SELECT 1;\";do sleep 1;done;'"); 37 $master->succeed("cat ${test} | psql postgres"); 38 # I can't make original test working :[ 39 # $master->succeed("${pkgs.perlPackages.TAPParserSourceHandlerpgTAP}/bin/pg_prove -d postgres ${pkgs.pgjwt.src}/test.sql"); 40 41 ''; 42})