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