{ self, inputs, lib, ... }: let module = lib.modules.importApply ./default.nix { inherit (self) packages; }; in { clan.modules = { hello-world = module; }; perSystem = { ... }: let # Module that contains the tests # This module adds: # - legacyPackages..eval-tests-hello-world # - checks..eval-tests-hello-world unit-test-module = ( self.clanLib.test.flakeModules.makeEvalChecks { inherit module; inherit inputs; fileset = lib.fileset.unions [ # The hello-world service being tested ../../clanServices/hello-world # Required modules ../../nixosModules/clanCore ]; testName = "hello-world"; tests = ./tests/eval-tests.nix; # Optional arguments passed to the test testArgs = { }; } ); in { imports = [ unit-test-module ]; /** 1. Prepare the test vars nix run .#generate-test-vars -- clanServices/hello-world/tests/vm hello-service 2. To run the test nix build .#checks.x86_64-linux.hello-service */ clan.nixosTests.hello-service = { imports = [ ./tests/vm/default.nix ]; clan.modules.hello-service = module; }; }; }