43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
|   | import ./make-test.nix ({ pkgs, ...} :  | ||
|  | let | ||
|  |   test = pkgs.writeText "test.sql" ''
 | ||
|  |     CREATE EXTENSION pgcrypto; | ||
|  |     CREATE EXTENSION pgjwt; | ||
|  |     select sign('{"sub":"1234567890","name":"John Doe","admin":true}', 'secret'); | ||
|  |     select * from verify('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ', 'secret'); | ||
|  |   '';
 | ||
|  | in | ||
|  | { | ||
|  |   name = "pgjwt"; | ||
|  |   meta = with pkgs.stdenv.lib.maintainers; { | ||
|  |     maintainers = [ spinus ]; | ||
|  |   }; | ||
|  | 
 | ||
|  |   nodes = { | ||
|  |     master = | ||
|  |       { pkgs, config, ... }: | ||
|  | 
 | ||
|  |       { | ||
|  |         services.postgresql = let mypg = pkgs.postgresql95; in { | ||
|  |             enable = true; | ||
|  |             package = mypg; | ||
|  |             extraPlugins =[pkgs.pgjwt]; | ||
|  |             initialScript =  pkgs.writeText "postgresql-init.sql" | ||
|  |           ''
 | ||
|  |           CREATE ROLE postgres WITH superuser login createdb; | ||
|  |           '';
 | ||
|  |           }; | ||
|  |       }; | ||
|  |   }; | ||
|  | 
 | ||
|  |   testScript = ''
 | ||
|  |     startAll; | ||
|  |     $master->waitForUnit("postgresql"); | ||
|  |     $master->succeed("timeout 10 bash -c 'while ! psql postgres -c \"SELECT 1;\";do sleep 1;done;'"); | ||
|  |     $master->succeed("cat ${test} | psql postgres"); | ||
|  |     # I can't make original test working :[ | ||
|  |     # $master->succeed("${pkgs.perlPackages.TAPParserSourceHandlerpgTAP}/bin/pg_prove -d postgres ${pkgs.pgjwt.src}/test.sql"); | ||
|  | 
 | ||
|  |   '';
 | ||
|  | }) |