53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								import ./make-test.nix ({ pkgs, lib, ... }:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								let
							 | 
						||
| 
								 | 
							
								  port = 3142;
							 | 
						||
| 
								 | 
							
								  username = "alice";
							 | 
						||
| 
								 | 
							
								  password = "correcthorsebatterystaple";
							 | 
						||
| 
								 | 
							
								  defaultPort = 8080;
							 | 
						||
| 
								 | 
							
								  defaultUsername = "admin";
							 | 
						||
| 
								 | 
							
								  defaultPassword = "password";
							 | 
						||
| 
								 | 
							
								in
							 | 
						||
| 
								 | 
							
								with lib;
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  name = "miniflux";
							 | 
						||
| 
								 | 
							
								  meta.maintainers = with pkgs.stdenv.lib.maintainers; [ bricewge ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  nodes = {
							 | 
						||
| 
								 | 
							
								    default =
							 | 
						||
| 
								 | 
							
								      { ... }:
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        services.miniflux.enable = true;
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    customized =
							 | 
						||
| 
								 | 
							
								      { ... }:
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        services.miniflux = {
							 | 
						||
| 
								 | 
							
								          enable = true;
							 | 
						||
| 
								 | 
							
								          config = {
							 | 
						||
| 
								 | 
							
								            CLEANUP_FREQUENCY = "48";
							 | 
						||
| 
								 | 
							
								            LISTEN_ADDR = "localhost:${toString port}";
							 | 
						||
| 
								 | 
							
								          };
							 | 
						||
| 
								 | 
							
								          adminCredentialsFile = pkgs.writeText "admin-credentials" ''
							 | 
						||
| 
								 | 
							
								            ADMIN_USERNAME=${username}
							 | 
						||
| 
								 | 
							
								            ADMIN_PASSWORD=${password}
							 | 
						||
| 
								 | 
							
								          '';
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  testScript = ''
							 | 
						||
| 
								 | 
							
								    startAll;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $default->waitForUnit('miniflux.service');
							 | 
						||
| 
								 | 
							
								    $default->waitForOpenPort(${toString defaultPort});
							 | 
						||
| 
								 | 
							
								    $default->succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK");
							 | 
						||
| 
								 | 
							
								    $default->succeed("curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $customized->waitForUnit('miniflux.service');
							 | 
						||
| 
								 | 
							
								    $customized->waitForOpenPort(${toString port});
							 | 
						||
| 
								 | 
							
								    $customized->succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep -q OK");
							 | 
						||
| 
								 | 
							
								    $customized->succeed("curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep -q '\"is_admin\":true'");
							 | 
						||
| 
								 | 
							
								  '';
							 | 
						||
| 
								 | 
							
								})
							 |