| 
									
										
										
										
											2019-11-06 20:48:38 +01:00
										 |  |  | import ./make-test-python.nix ({ pkgs, lib, ...} : { | 
					
						
							| 
									
										
										
										
											2019-03-26 19:04:28 +01:00
										 |  |  |   name = "documize"; | 
					
						
							|  |  |  |   meta = with pkgs.stdenv.lib.maintainers; { | 
					
						
							|  |  |  |     maintainers = [ ma27 ]; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   machine = { pkgs, ... }: { | 
					
						
							|  |  |  |     environment.systemPackages = [ pkgs.jq ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     services.documize = { | 
					
						
							|  |  |  |       enable = true; | 
					
						
							|  |  |  |       port = 3000; | 
					
						
							|  |  |  |       dbtype = "postgresql"; | 
					
						
							|  |  |  |       db = "host=localhost port=5432 sslmode=disable user=documize password=documize dbname=documize"; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     systemd.services.documize-server = { | 
					
						
							|  |  |  |       after = [ "postgresql.service" ]; | 
					
						
							|  |  |  |       requires = [ "postgresql.service" ]; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     services.postgresql = { | 
					
						
							|  |  |  |       enable = true; | 
					
						
							|  |  |  |       initialScript = pkgs.writeText "psql-init" ''
 | 
					
						
							|  |  |  |         CREATE ROLE documize WITH LOGIN PASSWORD 'documize'; | 
					
						
							|  |  |  |         CREATE DATABASE documize WITH OWNER documize; | 
					
						
							|  |  |  |       '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   testScript = ''
 | 
					
						
							| 
									
										
										
										
											2019-11-06 20:48:38 +01:00
										 |  |  |     start_all() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     machine.wait_for_unit("documize-server.service") | 
					
						
							|  |  |  |     machine.wait_for_open_port(3000) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     dbhash = machine.succeed( | 
					
						
							|  |  |  |         "curl -f localhost:3000 | grep 'property=\"dbhash' | grep -Po 'content=\"\\K[^\"]*'" | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     dbhash = dbhash.strip() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     machine.succeed( | 
					
						
							|  |  |  |         ( | 
					
						
							|  |  |  |             "curl -X POST" | 
					
						
							|  |  |  |             " --data 'dbname=documize'" | 
					
						
							|  |  |  |             " --data 'dbhash={}'" | 
					
						
							|  |  |  |             " --data 'title=NixOS'" | 
					
						
							|  |  |  |             " --data 'message=Docs'" | 
					
						
							|  |  |  |             " --data 'firstname=John'" | 
					
						
							|  |  |  |             " --data 'lastname=Doe'" | 
					
						
							|  |  |  |             " --data 'email=john.doe@nixos.org'" | 
					
						
							|  |  |  |             " --data 'password=verysafe'" | 
					
						
							|  |  |  |             " -f localhost:3000/api/setup" | 
					
						
							|  |  |  |         ).format(dbhash) | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     machine.succeed( | 
					
						
							|  |  |  |         'test "$(curl -f localhost:3000/api/public/meta | jq ".title" | xargs echo)" = "NixOS"' | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2019-03-26 19:04:28 +01:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |