46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
import ./make-test.nix ({ pkgs, lib, ...} : {
 | 
						|
  name = "gotify-server";
 | 
						|
  meta = with pkgs.stdenv.lib.maintainers; {
 | 
						|
    maintainers = [ ma27 ];
 | 
						|
  };
 | 
						|
 | 
						|
  machine = { pkgs, ... }: {
 | 
						|
    environment.systemPackages = [ pkgs.jq ];
 | 
						|
 | 
						|
    services.gotify = {
 | 
						|
      enable = true;
 | 
						|
      port = 3000;
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  testScript = ''
 | 
						|
    startAll;
 | 
						|
 | 
						|
    $machine->waitForUnit("gotify-server");
 | 
						|
    $machine->waitForOpenPort(3000);
 | 
						|
 | 
						|
    my $token = $machine->succeed(
 | 
						|
      "curl --fail -sS -X POST localhost:3000/application -F name=nixos " .
 | 
						|
      '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" ' .
 | 
						|
      '| jq .token | xargs echo -n'
 | 
						|
    );
 | 
						|
 | 
						|
    my $usertoken = $machine->succeed(
 | 
						|
      "curl --fail -sS -X POST localhost:3000/client -F name=nixos " .
 | 
						|
      '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" ' .
 | 
						|
      '| jq .token | xargs echo -n'
 | 
						|
    );
 | 
						|
 | 
						|
    $machine->succeed(
 | 
						|
      "curl --fail -sS -X POST 'localhost:3000/message?token=$token' -H 'Accept: application/json' " .
 | 
						|
      '-F title=Gotify -F message=Works'
 | 
						|
    );
 | 
						|
 | 
						|
    my $title = $machine->succeed(
 | 
						|
      "curl --fail -sS 'localhost:3000/message?since=0&token=$usertoken' | jq '.messages|.[0]|.title' | xargs echo -n"
 | 
						|
    );
 | 
						|
 | 
						|
    $title eq "Gotify" or die "Wrong title ($title), expected 'Gotify'!";
 | 
						|
  '';
 | 
						|
})
 |