at 23.11-beta 1.5 kB view raw
1import ./make-test-python.nix ({ pkgs, lib, ... }: 2let 3 journal = pkgs.writeText "test.journal" '' 4 2010/01/10 Loan 5 assets:cash 500$ 6 income:loan -500$ 7 2010/01/10 NixOS Foundation donation 8 expenses:donation 250$ 9 assets:cash -250$ 10 ''; 11in 12rec { 13 name = "hledger-web"; 14 meta.maintainers = with lib.maintainers; [ marijanp ]; 15 16 nodes = rec { 17 server = { config, pkgs, ... }: { 18 services.hledger-web = { 19 host = "127.0.0.1"; 20 port = 5000; 21 enable = true; 22 capabilities.manage = true; 23 }; 24 networking.firewall.allowedTCPPorts = [ config.services.hledger-web.port ]; 25 systemd.services.hledger-web.preStart = '' 26 ln -s ${journal} /var/lib/hledger-web/.hledger.journal 27 ''; 28 }; 29 apiserver = { ... }: { 30 imports = [ server ]; 31 services.hledger-web.serveApi = true; 32 }; 33 }; 34 35 testScript = '' 36 start_all() 37 38 server.wait_for_unit("hledger-web.service") 39 server.wait_for_open_port(5000) 40 with subtest("Check if web UI is accessible"): 41 page = server.succeed("curl -L http://127.0.0.1:5000") 42 assert ".hledger.journal" in page 43 44 apiserver.wait_for_unit("hledger-web.service") 45 apiserver.wait_for_open_port(5000) 46 with subtest("Check if the JSON API is served"): 47 transactions = apiserver.succeed("curl -L http://127.0.0.1:5000/transactions") 48 assert "NixOS Foundation donation" in transactions 49 ''; 50})