1
0
Fork 0

add sso tests to arr suite

This commit is contained in:
ibizaman 2024-07-16 11:23:57 +02:00 committed by Pierre Penninckx
parent 9a2e4b7603
commit 9cae26d23f

View file

@ -13,7 +13,7 @@ let
let let
subdomain = appname; subdomain = appname;
fqdn = "${subdomain}.${domain}"; fqdn = "${subdomain}.${domain}";
in testLib.accessScript { in lib.makeOverridable testLib.accessScript {
inherit subdomain domain; inherit subdomain domain;
hasSSL = { node, ... }: !(isNull node.config.shb.arr.${appname}.ssl); hasSSL = { node, ... }: !(isNull node.config.shb.arr.${appname}.ssl);
waitForServices = { ... }: [ waitForServices = { ... }: [
@ -28,8 +28,10 @@ let
cfgPath = cfgPathFn shbapp; cfgPath = cfgPathFn shbapp;
apiKey = if (shbapp.settings ? ApiKey) then "01234567890123456789" else null; apiKey = if (shbapp.settings ? ApiKey) then "01234567890123456789" else null;
in '' in ''
# These curl requests still return a 200 even with sso redirect.
with subtest("health"): with subtest("health"):
response = curl(client, """{"code":%{response_code}}""", "${fqdn}${healthUrl}") response = curl(client, """{"code":%{response_code}}""", "${fqdn}${healthUrl}")
print("response =", response)
if response['code'] != 200: if response['code'] != 200:
raise Exception(f"Code is {response['code']}") raise Exception(f"Code is {response['code']}")
@ -63,7 +65,7 @@ let
}; };
basicTest = appname: cfgPathFn: pkgs.testers.runNixOSTest { basicTest = appname: cfgPathFn: pkgs.testers.runNixOSTest {
name = "arr-${appname}-basic"; name = "arr_${appname}_basic";
nodes.server = { config, pkgs, ... }: { nodes.server = { config, pkgs, ... }: {
imports = [ imports = [
@ -84,13 +86,13 @@ let
}; };
httpsTest = appname: cfgPathFn: pkgs.testers.runNixOSTest { httpsTest = appname: cfgPathFn: pkgs.testers.runNixOSTest {
name = "arr-${appname}-https"; name = "arr_${appname}_https";
nodes.server = { config, pkgs, ... }: { nodes.server = { config, pkgs, ... }: {
imports = [ imports = [
base base
(basic appname)
(testLib.certs domain) (testLib.certs domain)
(basic appname)
(https appname) (https appname)
]; ];
}; };
@ -100,6 +102,34 @@ let
testScript = commonTestScript appname cfgPathFn; testScript = commonTestScript appname cfgPathFn;
}; };
sso = appname: { config, ...}: {
shb.arr.${appname} = {
authEndpoint = "https://${config.shb.authelia.subdomain}.${config.shb.authelia.domain}";
};
};
ssoTest = appname: cfgPathFn: pkgs.testers.runNixOSTest {
name = "arr_${appname}_sso";
nodes.server = { config, pkgs, ... }: {
imports = [
base
(testLib.certs domain)
(basic appname)
(https appname)
(testLib.ldap domain pkgs')
(testLib.sso domain pkgs' config.shb.certs.certs.selfsigned.n)
(sso appname)
];
};
nodes.client = {};
testScript = (commonTestScript appname cfgPathFn).override {
redirectSSO = true;
};
};
radarrCfgFn = cfg: "${cfg.dataDir}/config.xml"; radarrCfgFn = cfg: "${cfg.dataDir}/config.xml";
sonarrCfgFn = cfg: "${cfg.dataDir}/config.xml"; sonarrCfgFn = cfg: "${cfg.dataDir}/config.xml";
bazarrCfgFn = cfg: "/var/lib/bazarr/config.xml"; bazarrCfgFn = cfg: "/var/lib/bazarr/config.xml";
@ -110,19 +140,25 @@ in
{ {
radarr_basic = basicTest "radarr" radarrCfgFn; radarr_basic = basicTest "radarr" radarrCfgFn;
radarr_https = httpsTest "radarr" radarrCfgFn; radarr_https = httpsTest "radarr" radarrCfgFn;
radarr_sso = ssoTest "radarr" radarrCfgFn;
sonarr_basic = basicTest "sonarr" sonarrCfgFn; sonarr_basic = basicTest "sonarr" sonarrCfgFn;
sonarr_https = httpsTest "sonarr" sonarrCfgFn; sonarr_https = httpsTest "sonarr" sonarrCfgFn;
sonarr_sso = ssoTest "sonarr" sonarrCfgFn;
bazarr_basic = basicTest "bazarr" bazarrCfgFn; bazarr_basic = basicTest "bazarr" bazarrCfgFn;
bazarr_https = httpsTest "bazarr" bazarrCfgFn; bazarr_https = httpsTest "bazarr" bazarrCfgFn;
bazarr_sso = ssoTest "bazarr" bazarrCfgFn;
readarr_basic = basicTest "readarr" readarrCfgFn; readarr_basic = basicTest "readarr" readarrCfgFn;
readarr_https = httpsTest "readarr" readarrCfgFn; readarr_https = httpsTest "readarr" readarrCfgFn;
readarr_sso = ssoTest "readarr" readarrCfgFn;
lidarr_basic = basicTest "lidarr" lidarrCfgFn; lidarr_basic = basicTest "lidarr" lidarrCfgFn;
lidarr_https = httpsTest "lidarr" lidarrCfgFn; lidarr_https = httpsTest "lidarr" lidarrCfgFn;
lidarr_sso = ssoTest "lidarr" lidarrCfgFn;
jackett_basic = basicTest "jackett" jackettCfgFn; jackett_basic = basicTest "jackett" jackettCfgFn;
jackett_https = httpsTest "jackett" jackettCfgFn; jackett_https = httpsTest "jackett" jackettCfgFn;
jackett_sso = ssoTest "jackett" jackettCfgFn;
} }