add sso tests to arr suite
This commit is contained in:
parent
9a2e4b7603
commit
9cae26d23f
1 changed files with 40 additions and 4 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue