refactor base module in tests

This commit is contained in:
ibizaman 2025-01-22 22:10:12 +01:00 committed by Pierre Penninckx
parent 757d910d13
commit 441907b134
16 changed files with 134 additions and 132 deletions

View file

@ -1,11 +1,8 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
pkgs' = pkgs;
testLib = pkgs.callPackage ../../../test/common.nix {}; testLib = pkgs.callPackage ../../../test/common.nix {};
inherit (lib) concatStringsSep concatMapStringsSep getAttrFromPath mkIf optionalAttrs setAttrByPath; inherit (lib) concatMapStringsSep getAttrFromPath mkIf optionalAttrs setAttrByPath;
inherit (testLib) indent;
in in
{ name, { name,
providerRoot, providerRoot,
@ -21,7 +18,7 @@ in
inherit name; inherit name;
nodes.machine = { config, ... }: { nodes.machine = { config, ... }: {
imports = ( testLib.baseImports pkgs' ) ++ modules; imports = [ testLib.baseImports ] ++ modules;
config = lib.mkMerge [ config = lib.mkMerge [
(setAttrByPath providerRoot { (setAttrByPath providerRoot {

View file

@ -1,7 +1,5 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
pkgs' = pkgs;
testLib = pkgs.callPackage ../../../test/common.nix {}; testLib = pkgs.callPackage ../../../test/common.nix {};
inherit (lib) getAttrFromPath mkIf optionalAttrs setAttrByPath; inherit (lib) getAttrFromPath mkIf optionalAttrs setAttrByPath;
@ -17,7 +15,7 @@ in
inherit name; inherit name;
nodes.machine = { config, ... }: { nodes.machine = { config, ... }: {
imports = ( testLib.baseImports pkgs' ) ++ modules; imports = [ testLib.baseImports ] ++ modules;
config = lib.mkMerge [ config = lib.mkMerge [
(setAttrByPath providerRoot { (setAttrByPath providerRoot {
request = (getAttrFromPath requesterRoot config).request; request = (getAttrFromPath requesterRoot config).request;

View file

@ -1,7 +1,5 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
pkgs' = pkgs;
testLib = pkgs.callPackage ../../../test/common.nix {}; testLib = pkgs.callPackage ../../../test/common.nix {};
inherit (lib) getAttrFromPath setAttrByPath; inherit (lib) getAttrFromPath setAttrByPath;
@ -19,7 +17,7 @@ in
name = "secret_${name}_${owner}_${group}_${mode}"; name = "secret_${name}_${owner}_${group}_${mode}";
nodes.machine = { config, ... }: { nodes.machine = { config, ... }: {
imports = ( testLib.baseImports pkgs' ) ++ modules; imports = [ testLib.baseImports ] ++ modules;
config = lib.mkMerge [ config = lib.mkMerge [
(setAttrByPath configRoot { (setAttrByPath configRoot {
A = { A = {

View file

@ -1,19 +1,13 @@
{ pkgs, lib, ... }: { pkgs, ... }:
let let
pkgs' = pkgs;
testLib = pkgs.callPackage ../common.nix {}; testLib = pkgs.callPackage ../common.nix {};
shblib = pkgs.callPackage ../../lib {};
base = testLib.base [
../../modules/blocks/restic.nix
];
commonTest = user: pkgs.testers.runNixOSTest { commonTest = user: pkgs.testers.runNixOSTest {
name = "restic_backupAndRestore_${user}"; name = "restic_backupAndRestore_${user}";
nodes.machine = { config, ... }: { nodes.machine = { config, ... }: {
imports = ( testLib.baseImports pkgs' ) ++ [ imports = [
testLib.baseImports
../../modules/blocks/hardcodedsecret.nix ../../modules/blocks/hardcodedsecret.nix
../../modules/blocks/restic.nix ../../modules/blocks/restic.nix
]; ];

View file

@ -1,9 +1,11 @@
{ lib }: { pkgs, lib }:
let let
baseImports = pkgs: [ baseImports = {
(pkgs.path + "/nixos/modules/profiles/headless.nix") imports = [
(pkgs.path + "/nixos/modules/profiles/qemu-guest.nix") (pkgs.path + "/nixos/modules/profiles/headless.nix")
]; (pkgs.path + "/nixos/modules/profiles/qemu-guest.nix")
];
};
accessScript = lib.makeOverridable ({ accessScript = lib.makeOverridable ({
subdomain subdomain
@ -112,19 +114,17 @@ in
backup = backupScript args; backup = backupScript args;
}; };
base = pkgs: additionalModules: { baseModule = {
imports = imports =
( baseImports pkgs ) [
++ [ baseImports
# TODO: replace postgresql.nix and authelia.nix by the sso contract
../modules/blocks/postgresql.nix ../modules/blocks/postgresql.nix
../modules/blocks/authelia.nix ../modules/blocks/authelia.nix
../modules/blocks/nginx.nix ../modules/blocks/nginx.nix
../modules/blocks/hardcodedsecret.nix ../modules/blocks/hardcodedsecret.nix
] ];
++ additionalModules;
# Nginx port. # HTTP(s) server port.
networking.firewall.allowedTCPPorts = [ 80 443 ]; networking.firewall.allowedTCPPorts = [ 80 443 ];
}; };

View file

@ -50,10 +50,6 @@ let
''; '';
}; };
base = testLib.base pkgs' [
../../modules/services/arr.nix
];
basic = appname: { ... }: { basic = appname: { ... }: {
shb.arr.${appname} = { shb.arr.${appname} = {
enable = true; enable = true;
@ -69,7 +65,8 @@ let
nodes.server = { config, pkgs, ... }: { nodes.server = { config, pkgs, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/arr.nix
(basic appname) (basic appname)
]; ];
}; };
@ -84,7 +81,8 @@ let
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/arr.nix
(basic appname) (basic appname)
(testLib.backup config.shb.arr.${appname}.backup) (testLib.backup config.shb.arr.${appname}.backup)
]; ];
@ -106,7 +104,8 @@ let
nodes.server = { config, pkgs, ... }: { nodes.server = { config, pkgs, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/arr.nix
(testLib.certs domain) (testLib.certs domain)
(basic appname) (basic appname)
(https appname) (https appname)
@ -129,7 +128,8 @@ let
nodes.server = { config, pkgs, ... }: { nodes.server = { config, pkgs, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/arr.nix
(testLib.certs domain) (testLib.certs domain)
(basic appname) (basic appname)
(https appname) (https appname)

View file

@ -23,10 +23,6 @@ let
# ''; # '';
}; };
base = testLib.base pkgs' [
../../modules/services/audiobookshelf.nix
];
basic = { basic = {
shb.audiobookshelf = { shb.audiobookshelf = {
enable = true; enable = true;
@ -58,7 +54,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/audiobookshelf.nix
basic basic
]; ];
}; };
@ -71,12 +68,15 @@ in
https = pkgs.testers.runNixOSTest { https = pkgs.testers.runNixOSTest {
name = "audiobookshelf-https"; name = "audiobookshelf-https";
nodes.server = lib.mkMerge [ nodes.server = {
base imports = [
(testLib.certs domain) testLib.baseModule
basic ../../modules/services/audiobookshelf.nix
https (testLib.certs domain)
]; basic
https
];
};
nodes.client = {}; nodes.client = {};
@ -88,7 +88,8 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/audiobookshelf.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https

View file

@ -73,11 +73,6 @@ let
print(response) print(response)
''; '';
base = testLib.base pkgs' [
../../modules/blocks/hardcodedsecret.nix
../../modules/services/deluge.nix
];
basic = { config, ... }: { basic = { config, ... }: {
shb.deluge = { shb.deluge = {
enable = true; enable = true;
@ -127,7 +122,9 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/hardcodedsecret.nix
../../modules/services/deluge.nix
basic basic
]; ];
}; };
@ -142,7 +139,9 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/hardcodedsecret.nix
../../modules/services/deluge.nix
basic basic
(testLib.backup config.shb.deluge.backup) (testLib.backup config.shb.deluge.backup)
]; ];
@ -158,7 +157,9 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/hardcodedsecret.nix
../../modules/services/deluge.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -175,7 +176,9 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/hardcodedsecret.nix
../../modules/services/deluge.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -197,7 +200,9 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/hardcodedsecret.nix
../../modules/services/deluge.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https

View file

@ -25,10 +25,6 @@ let
''; '';
}; };
base = testLib.base pkgs' [
../../modules/services/forgejo.nix
];
basic = { config, ... }: { basic = { config, ... }: {
shb.forgejo = { shb.forgejo = {
enable = true; enable = true;
@ -104,7 +100,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/forgejo.nix
basic basic
]; ];
}; };
@ -119,7 +116,8 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/forgejo.nix
basic basic
(testLib.backup config.shb.forgejo.backup) (testLib.backup config.shb.forgejo.backup)
]; ];
@ -135,7 +133,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/forgejo.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -152,7 +151,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/forgejo.nix
basic basic
(testLib.ldap domain pkgs') (testLib.ldap domain pkgs')
ldap ldap
@ -169,7 +169,8 @@ in
nodes.server = { config, pkgs, ... }: { nodes.server = { config, pkgs, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/forgejo.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https

View file

@ -23,10 +23,6 @@ let
# ''; # '';
}; };
base = testLib.base pkgs' [
../../modules/services/grocy.nix
];
basic = { config, ... }: { basic = { config, ... }: {
shb.grocy = { shb.grocy = {
enable = true; enable = true;
@ -46,7 +42,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/grocy.nix
basic basic
]; ];
}; };
@ -61,7 +58,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/grocy.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https

View file

@ -18,10 +18,6 @@ let
]; ];
}; };
base = testLib.base pkgs' [
../../modules/services/hledger.nix
];
basic = { config, ... }: { basic = { config, ... }: {
shb.hledger = { shb.hledger = {
enable = true; enable = true;
@ -47,7 +43,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/hledger.nix
basic basic
]; ];
}; };
@ -62,7 +59,8 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/hledger.nix
basic basic
(testLib.backup config.shb.hledger.backup) (testLib.backup config.shb.hledger.backup)
]; ];
@ -78,7 +76,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/hledger.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -95,7 +94,8 @@ in
nodes.server = { config, pkgs, ... }: { nodes.server = { config, pkgs, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/hledger.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https

View file

@ -19,10 +19,6 @@ let
]; ];
}; };
base = testLib.base pkgs' [
../../modules/services/home-assistant.nix
];
basic = { config, ... }: { basic = { config, ... }: {
shb.home-assistant = { shb.home-assistant = {
enable = true; enable = true;
@ -115,7 +111,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/home-assistant.nix
basic basic
]; ];
}; };
@ -130,7 +127,8 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/home-assistant.nix
basic basic
(testLib.backup config.shb.home-assistant.backup) (testLib.backup config.shb.home-assistant.backup)
]; ];
@ -146,7 +144,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/home-assistant.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -163,7 +162,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/home-assistant.nix
basic basic
(testLib.ldap domain pkgs') (testLib.ldap domain pkgs')
ldap ldap
@ -181,7 +181,8 @@ in
# name = "vaultwarden_sso"; # name = "vaultwarden_sso";
# #
# nodes.server = lib.mkMerge [ # nodes.server = lib.mkMerge [
# base # testLib.baseModule
# ../../modules/services/home-assistant.nix
# (testLib.certs domain) # (testLib.certs domain)
# basic # basic
# https # https
@ -201,7 +202,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/home-assistant.nix
basic basic
voice voice
]; ];

View file

@ -19,10 +19,6 @@ let
]; ];
}; };
base = testLib.base pkgs' [
../../modules/services/jellyfin.nix
];
basic = { basic = {
shb.jellyfin = { shb.jellyfin = {
enable = true; enable = true;
@ -80,7 +76,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/jellyfin.nix
basic basic
]; ];
}; };
@ -95,7 +92,8 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/jellyfin.nix
basic basic
(testLib.backup config.shb.jellyfin.backup) (testLib.backup config.shb.jellyfin.backup)
]; ];
@ -111,7 +109,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/jellyfin.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -128,7 +127,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/jellyfin.nix
basic basic
(testLib.ldap domain pkgs') (testLib.ldap domain pkgs')
ldap ldap
@ -145,7 +145,8 @@ in
nodes.server = { config, pkgs, ... }: { nodes.server = { config, pkgs, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/jellyfin.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https

View file

@ -20,10 +20,6 @@ let
]; ];
}; };
base = testLib.base pkgs' [
../../modules/blocks/monitoring.nix
];
basic = { config, ... }: { basic = { config, ... }: {
shb.monitoring = { shb.monitoring = {
enable = true; enable = true;
@ -56,7 +52,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/monitoring.nix
basic basic
]; ];
}; };
@ -71,7 +68,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/monitoring.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https

View file

@ -115,10 +115,6 @@ let
''; '';
}; };
base = testLib.base pkgs' [
../../modules/services/nextcloud-server.nix
];
basic = { config, ... }: { basic = { config, ... }: {
shb.nextcloud = { shb.nextcloud = {
enable = true; enable = true;
@ -242,7 +238,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/nextcloud-server.nix
basic basic
]; ];
}; };
@ -257,7 +254,8 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/nextcloud-server.nix
basic basic
(testLib.backup config.shb.nextcloud.backup) (testLib.backup config.shb.nextcloud.backup)
]; ];
@ -273,7 +271,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/nextcloud-server.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -291,7 +290,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/nextcloud-server.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -309,7 +309,8 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/services/nextcloud-server.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -327,7 +328,8 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/nextcloud-server.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -346,7 +348,8 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/nextcloud-server.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -367,7 +370,8 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/services/nextcloud-server.nix
basic basic
prometheus prometheus
]; ];

View file

@ -50,11 +50,6 @@ let
''; '';
}; };
base = testLib.base pkgs' [
../../modules/blocks/hardcodedsecret.nix
../../modules/services/vaultwarden.nix
];
basic = { config, ... }: { basic = { config, ... }: {
shb.nginx.accessLog = true; shb.nginx.accessLog = true;
shb.vaultwarden = { shb.vaultwarden = {
@ -100,7 +95,9 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/hardcodedsecret.nix
../../modules/services/vaultwarden.nix
basic basic
]; ];
}; };
@ -115,7 +112,9 @@ in
nodes.server = { nodes.server = {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/hardcodedsecret.nix
../../modules/services/vaultwarden.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -133,7 +132,9 @@ in
# name = "vaultwarden_ldap"; # name = "vaultwarden_ldap";
# #
# nodes.server = lib.mkMerge [ # nodes.server = lib.mkMerge [
# base # testLib.baseModule
# ../../modules/blocks/hardcodedsecret.nix
# ../../modules/services/vaultwarden.nix
# basic # basic
# ldap # ldap
# ]; # ];
@ -148,7 +149,9 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/hardcodedsecret.nix
../../modules/services/vaultwarden.nix
(testLib.certs domain) (testLib.certs domain)
basic basic
https https
@ -185,7 +188,9 @@ in
nodes.server = { config, ... }: { nodes.server = { config, ... }: {
imports = [ imports = [
base testLib.baseModule
../../modules/blocks/hardcodedsecret.nix
../../modules/services/vaultwarden.nix
basic basic
(testLib.backup config.shb.vaultwarden.backup) (testLib.backup config.shb.vaultwarden.backup)
]; ];