59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								import ./make-test.nix ({ pkgs, lib, ...} : {
							 | 
						||
| 
								 | 
							
								  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 = ''
							 | 
						||
| 
								 | 
							
								    startAll;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $machine->waitForUnit("documize-server.service");
							 | 
						||
| 
								 | 
							
								    $machine->waitForOpenPort(3000);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    my $dbhash = $machine->succeed("curl -f localhost:3000 "
							 | 
						||
| 
								 | 
							
								                                  . " | grep 'property=\"dbhash' "
							 | 
						||
| 
								 | 
							
								                                  . " | grep -Po 'content=\"\\K[^\"]*'"
							 | 
						||
| 
								 | 
							
								                                  );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    chomp($dbhash);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $machine->succeed("curl -X POST "
							 | 
						||
| 
								 | 
							
								                      . "--data 'dbname=documize' "
							 | 
						||
| 
								 | 
							
								                      . "--data 'dbhash=$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"
							 | 
						||
| 
								 | 
							
								                    );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $machine->succeed('test "$(curl -f localhost:3000/api/public/meta | jq ".title" | xargs echo)" = "NixOS"');
							 | 
						||
| 
								 | 
							
								  '';
							 | 
						||
| 
								 | 
							
								})
							 |