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'"); | ||
|  |   '';
 | ||
|  | }) |