| 
									
										
										
										
											2017-09-29 16:22:51 +02:00
										 |  |  | import ./make-test.nix ({ pkgs, lib, ...}: | 
					
						
							| 
									
										
										
										
											2017-02-26 10:14:32 +00:00
										 |  |  | let | 
					
						
							| 
									
										
										
										
											2017-09-29 16:22:51 +02:00
										 |  |  |   test = with pkgs; runCommand "patch-test" { | 
					
						
							|  |  |  |     nativeBuildInputs = [ pgjwt ]; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   ''
 | 
					
						
							|  |  |  |     sed -e '12 i CREATE EXTENSION pgcrypto;\nCREATE EXTENSION pgtap;\nSET search_path TO tap,public;' ${pgjwt.src}/test.sql > $out; | 
					
						
							| 
									
										
										
										
											2017-02-26 10:14:32 +00:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | in | 
					
						
							| 
									
										
										
										
											2017-09-29 16:22:51 +02:00
										 |  |  | with pkgs; { | 
					
						
							| 
									
										
										
										
											2017-02-26 10:14:32 +00:00
										 |  |  |   name = "pgjwt"; | 
					
						
							| 
									
										
										
										
											2017-09-29 16:22:51 +02:00
										 |  |  |   meta = with lib.maintainers; { | 
					
						
							|  |  |  |     maintainers = [ spinus willibutz ]; | 
					
						
							| 
									
										
										
										
											2017-02-26 10:14:32 +00:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   nodes = { | 
					
						
							| 
									
										
										
										
											2017-09-29 16:22:51 +02:00
										 |  |  |     master = { pkgs, config, ... }: | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       services.postgresql = { | 
					
						
							| 
									
										
										
										
											2017-10-04 13:01:01 +02:00
										 |  |  |         enable = true; | 
					
						
							|  |  |  |         extraPlugins = [ pgjwt pgtap ]; | 
					
						
							| 
									
										
										
										
											2017-02-26 10:14:32 +00:00
										 |  |  |       }; | 
					
						
							| 
									
										
										
										
											2017-09-29 16:22:51 +02:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2017-02-26 10:14:32 +00:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-29 16:22:51 +02:00
										 |  |  |   testScript = { nodes, ... }: | 
					
						
							|  |  |  |   let | 
					
						
							|  |  |  |     sqlSU = "${nodes.master.config.services.postgresql.superUser}"; | 
					
						
							|  |  |  |     pgProve = "${pkgs.perlPackages.TAPParserSourceHandlerpgTAP}"; | 
					
						
							|  |  |  |   in | 
					
						
							|  |  |  |   ''
 | 
					
						
							| 
									
										
										
										
											2017-02-26 10:14:32 +00:00
										 |  |  |     startAll; | 
					
						
							|  |  |  |     $master->waitForUnit("postgresql"); | 
					
						
							| 
									
										
										
										
											2017-09-29 16:22:51 +02:00
										 |  |  |     $master->copyFileFromHost("${test}","/tmp/test.sql"); | 
					
						
							|  |  |  |     $master->succeed("${pkgs.sudo}/bin/sudo -u ${sqlSU} PGOPTIONS=--search_path=tap,public ${pgProve}/bin/pg_prove -d postgres -v -f /tmp/test.sql"); | 
					
						
							| 
									
										
										
										
											2017-02-26 10:14:32 +00:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |