{ lib, pkgs }: let defaults = { virtualisation = { memorySize = 2048; cores = 2; }; }; tf = pkgs.callPackage ./tf.nix { inherit lib pkgs; }; tfEnv = pkgs.callPackage ./tf-env.nix { }; nodes = { server = { environment.systemPackages = [ tf tfEnv ]; }; }; in lib.mapAttrs (name: test: pkgs.testers.runNixOSTest (test // { inherit name; })) { tf-validate-dev = { inherit defaults nodes; testScript = '' server.wait_for_unit("multi-user.target") server.succeed("${lib.getExe tf} -chdir='${tfEnv}/infra/dev' validate") ''; }; tf-validate-operator = { inherit defaults nodes; testScript = '' server.wait_for_unit("multi-user.target") server.succeed("${lib.getExe tf} -chdir='${tfEnv}/infra/operator' validate") ''; }; }