parent
e1eedf29e5
commit
78aec9cfcb
@ -0,0 +1,70 @@ |
||||
import ./make-test-python.nix ( |
||||
{ pkgs, lib, ... }: |
||||
|
||||
{ |
||||
name = "xandikos"; |
||||
|
||||
meta.maintainers = [ lib.maintainers."0x4A6F" ]; |
||||
|
||||
nodes = { |
||||
xandikos_client = {}; |
||||
xandikos_default = { |
||||
networking.firewall.allowedTCPPorts = [ 8080 ]; |
||||
services.xandikos.enable = true; |
||||
}; |
||||
xandikos_proxy = { |
||||
networking.firewall.allowedTCPPorts = [ 80 8080 ]; |
||||
services.xandikos.enable = true; |
||||
services.xandikos.address = "localhost"; |
||||
services.xandikos.port = 8080; |
||||
services.xandikos.routePrefix = "/xandikos/"; |
||||
services.xandikos.extraOptions = [ |
||||
"--defaults" |
||||
]; |
||||
services.nginx = { |
||||
enable = true; |
||||
recommendedProxySettings = true; |
||||
virtualHosts."xandikos" = { |
||||
serverName = "xandikos.local"; |
||||
basicAuth.xandikos = "snakeOilPassword"; |
||||
locations."/xandikos/" = { |
||||
proxyPass = "http://localhost:8080/"; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
testScript = '' |
||||
start_all() |
||||
|
||||
with subtest("Xandikos default"): |
||||
xandikos_default.wait_for_unit("multi-user.target") |
||||
xandikos_default.wait_for_unit("xandikos.service") |
||||
xandikos_default.wait_for_open_port(8080) |
||||
xandikos_default.succeed("curl --fail http://localhost:8080/") |
||||
xandikos_default.succeed( |
||||
"curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos" |
||||
) |
||||
xandikos_client.wait_for_unit("network.target") |
||||
xandikos_client.fail("curl --fail http://xandikos_default:8080/") |
||||
|
||||
with subtest("Xandikos proxy"): |
||||
xandikos_proxy.wait_for_unit("multi-user.target") |
||||
xandikos_proxy.wait_for_unit("xandikos.service") |
||||
xandikos_proxy.wait_for_open_port(8080) |
||||
xandikos_proxy.succeed("curl --fail http://localhost:8080/") |
||||
xandikos_proxy.succeed( |
||||
"curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos" |
||||
) |
||||
xandikos_client.wait_for_unit("network.target") |
||||
xandikos_client.fail("curl --fail http://xandikos_proxy:8080/") |
||||
xandikos_client.succeed( |
||||
"curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -qi Xandikos" |
||||
) |
||||
xandikos_client.succeed( |
||||
"curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -qi Xandikos" |
||||
) |
||||
''; |
||||
} |
||||
) |
Loading…
Reference in new issue