39 lines
865 B
Nix
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"
|
|
'';
|
|
}
|