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");
 | |
| 
 | |
|   '';
 | |
| })
 | 
