nixpkgs/nixos/tests/go-httpbin.nix
2025-07-23 16:17:47 +02:00

39 lines
865 B
Nix

{ lib, ... }:
{
name = "go-httpbin";
meta.maintainers = with lib.maintainers; [ defelo ];
nodes.machine = {
services.go-httpbin = {
enable = true;
settings.PORT = 8000;
};
};
interactive.nodes.machine = {
services.go-httpbin.settings.HOST = "0.0.0.0";
networking.firewall.allowedTCPPorts = [ 8000 ];
virtualisation.forwardPorts = [
{
from = "host";
host.port = 8000;
guest.port = 8000;
}
];
};
testScript = ''
import json
machine.wait_for_unit("go-httpbin.service")
machine.wait_for_open_port(8000)
resp = json.loads(machine.succeed("curl localhost:8000/get?foo=bar"))
assert resp["args"]["foo"] == ["bar"]
assert resp["method"] == "GET"
assert resp["origin"] == "127.0.0.1"
assert resp["url"] == "http://localhost:8000/get?foo=bar"
'';
}