51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| import ./make-test-python.nix ({ pkgs, lib, ... }:
 | |
| let
 | |
|   journal = pkgs.writeText "test.journal" ''
 | |
|     2010/01/10 Loan
 | |
|         assets:cash                 500$
 | |
|         income:loan                -500$
 | |
|     2010/01/10 NixOS Foundation donation
 | |
|         expenses:donation           250$
 | |
|         assets:cash                -250$
 | |
|   '';
 | |
| in
 | |
| rec {
 | |
|   name = "hledger-web";
 | |
|   meta.maintainers = with lib.maintainers; [ marijanp ];
 | |
| 
 | |
|   nodes = rec {
 | |
|     server = { config, pkgs, ... }: {
 | |
|       services.hledger-web = {
 | |
|         host = "127.0.0.1";
 | |
|         port = 5000;
 | |
|         enable = true;
 | |
|         capabilities.manage = true;
 | |
|       };
 | |
|       networking.firewall.allowedTCPPorts = [ config.services.hledger-web.port ];
 | |
|       systemd.services.hledger-web.preStart = ''
 | |
|         ln -s ${journal} /var/lib/hledger-web/.hledger.journal
 | |
|       '';
 | |
|     };
 | |
|     apiserver = { ... }: {
 | |
|       imports = [ server ];
 | |
|       services.hledger-web.serveApi = true;
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   testScript = ''
 | |
|     start_all()
 | |
| 
 | |
|     server.wait_for_unit("hledger-web.service")
 | |
|     server.wait_for_open_port(5000)
 | |
|     with subtest("Check if web UI is accessible"):
 | |
|         page = server.succeed("curl -L http://127.0.0.1:5000")
 | |
|         assert ".hledger.journal" in page
 | |
| 
 | |
|     apiserver.wait_for_unit("hledger-web.service")
 | |
|     apiserver.wait_for_open_port(5000)
 | |
|     with subtest("Check if the JSON API is served"):
 | |
|         transactions = apiserver.succeed("curl -L http://127.0.0.1:5000/transactions")
 | |
|         assert "NixOS Foundation donation" in transactions
 | |
|   '';
 | |
| })
 | 
