nixpkgs/nixos/tests/hledger-web.nix
2021-01-28 15:29:53 +01:00

53 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 = {
server = { config, pkgs, ... }: rec {
services.hledger-web = {
host = "127.0.0.1";
port = 5000;
enable = true;
journalFile = journal;
};
networking.firewall.allowedTCPPorts = [ services.hledger-web.port ];
};
apiserver = { config, pkgs, ... }: rec {
services.hledger-web = {
host = "127.0.0.1";
port = 5000;
enable = true;
serveApi = true;
journalFile = journal;
};
networking.firewall.allowedTCPPorts = [ services.hledger-web.port ];
};
};
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 "test.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
'';
})