at master 865 B view raw
1{ lib, ... }: 2 3{ 4 name = "go-httpbin"; 5 meta.maintainers = with lib.maintainers; [ defelo ]; 6 7 nodes.machine = { 8 services.go-httpbin = { 9 enable = true; 10 settings.PORT = 8000; 11 }; 12 }; 13 14 interactive.nodes.machine = { 15 services.go-httpbin.settings.HOST = "0.0.0.0"; 16 networking.firewall.allowedTCPPorts = [ 8000 ]; 17 virtualisation.forwardPorts = [ 18 { 19 from = "host"; 20 host.port = 8000; 21 guest.port = 8000; 22 } 23 ]; 24 }; 25 26 testScript = '' 27 import json 28 29 machine.wait_for_unit("go-httpbin.service") 30 machine.wait_for_open_port(8000) 31 32 resp = json.loads(machine.succeed("curl localhost:8000/get?foo=bar")) 33 assert resp["args"]["foo"] == ["bar"] 34 assert resp["method"] == "GET" 35 assert resp["origin"] == "127.0.0.1" 36 assert resp["url"] == "http://localhost:8000/get?foo=bar" 37 ''; 38}