{ pkgs, lib, ... }: { name = "zkap-spending-service"; nodes = { spending = { config, pkgs, ourpkgs, modulesPath, ... }: { imports = [ ../modules/packages.nix ../modules/spending.nix ]; services.private-storage-spending.enable = true; services.private-storage-spending.domain = "localhost"; }; }; testScript = { nodes }: let revision = nodes.spending.config.passthru.ourpkgs.zkap-spending-service.meta.rev; curl = "${pkgs.curl}/bin/curl -sSf"; in '' import json start_all() spending.wait_for_open_port(80) with subtest("Ensure we can ping the spending service"): output = spending.succeed("${curl} http://localhost/v1/_ping") assert json.loads(output)["status"] == "ok", "Could not ping spending service." with subtest("Ensure that the spending service version matches the expected version"): output = spending.succeed("${curl} http://localhost/v1/_version") assert json.loads(output)["revision"] == "${revision}", "Spending service revision does not match." ''; }