1{ lib, ... }:
2
3{
4 name = "echoip";
5 meta.maintainers = with lib.maintainers; [ defelo ];
6
7 nodes.machine = {
8 services.whoami.enable = true;
9 };
10
11 interactive.nodes.machine = {
12 networking.firewall.allowedTCPPorts = [ 8000 ];
13 virtualisation.forwardPorts = [
14 {
15 from = "host";
16 host.port = 8000;
17 guest.port = 8000;
18 }
19 ];
20 };
21
22 testScript = ''
23 import re
24
25 machine.wait_for_unit("whoami.service")
26 machine.wait_for_open_port(8000)
27
28 response = machine.succeed("curl -H 'X-Test-Header: Hello World!' http://127.0.0.1:8000/test")
29 assert re.search(r"^GET /test", response, re.M)
30 assert re.search(r"^X-Test-Header: Hello World!", response, re.M)
31 '';
32}