feat(clan/services): init test-suite for eval test

This commit is contained in:
Johannes Kirschbauer
2025-03-26 17:29:40 +01:00
parent a5a06dc086
commit 69b7c9602f
3 changed files with 116 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
{
lib,
...
}:
let
inherit (lib)
evalModules
mkOption
types
;
inherit (types)
submodule
attrsOf
str
;
evalInventory =
m:
(evalModules {
# Static modules
modules = [
../../inventory/build-inventory/interface.nix
{
modules.test = {};
}
m
];
}).config;
flakeFixture = { inputs = {}; };
callInventoryAdapter = inventoryModule: import ../inventory-adapter.nix { inherit lib; flake = flakeFixture; inventory = evalInventory inventoryModule; };
in
{
test_simple =
let res = callInventoryAdapter {
# Authored module
# A minimal module looks like this
# It isn't exactly doing anything but it's a valid module that produces an output
modules."simple-module" = {
_class = "clan.service";
manifest = {
name = "netwitness";
};
};
# User config
instances."instance_foo" = {
module = {
name = "simple-module";
};
};
};
in
{
# Test that the module is mapped into the output
# We might change the attribute name in the future
expr = res.evals ? "self-simple-module";
expected = true;
};
}