test: add nixlet dependency tests

This commit is contained in:
technofab 2026-02-09 20:49:54 +01:00
parent 906cd9db2d
commit 028fb8d43b
Signed by: technofab
SSH key fingerprint: SHA256:bV4h88OqS/AxjbPn66uUdvK9JsgIW4tv3vwJQ8tpMqQ
6 changed files with 43 additions and 3 deletions

View file

@ -22,7 +22,6 @@ You can pre-define values for dependency Nixlets like this:
options = {
# options for the current Nixlet
};
# overwriting the default of dependency Nixlets (the user can still overwrite this)
# overwriting the default of dependency Nixlets (the user can still overwrite this using mkForce for example)
config."postgres".replicaCount = 10;
```

3
tests/fixtures/dependency/default.nix vendored Normal file
View file

@ -0,0 +1,3 @@
{nixlet-lib, ...}: {
config.nixlet.dependencies."example" = nixlet-lib.mkNixlet ../example;
}

6
tests/fixtures/dependency/nixlet.nix vendored Normal file
View file

@ -0,0 +1,6 @@
{
name = "dep";
version = "0.0.1";
description = "hello world";
defaultProject = "dep";
}

5
tests/fixtures/dependency/values.nix vendored Normal file
View file

@ -0,0 +1,5 @@
_: {
options = {};
config."example".example = "Hello dependency!";
}

3
tests/fixtures/example/default.nix vendored Normal file
View file

@ -0,0 +1,3 @@
{nixlet, ...}: with nixlet; {
kubernetes.resources.configMaps."test".data."test" = values.example;
}

View file

@ -3,11 +3,14 @@
ntlib,
nixlet-lib,
...
}: {
}: let
inherit (pkgs.lib) mkForce;
in {
suites."Lib Tests" = {
pos = __curPos;
tests = let
nixlet = nixlet-lib.mkNixlet ./fixtures/example;
depNixlet = nixlet-lib.mkNixlet ./fixtures/dependency;
in [
{
name = "mkNixlet fail on nonexistant nixlet.nix";
@ -42,6 +45,27 @@
assert_file_contains "${docs}" '"Hello world!"'
'';
}
{
name = "Nixlet dependencies";
expected = "Hello dependency!";
actual = let
evaled = depNixlet.eval {inherit (pkgs.stdenv.hostPlatform) system;};
in
evaled.config.kubernetes.resources.configMaps."test".data."test";
}
{
name = "Nixlet dependency value override";
expected = "Hello override!";
actual = let
evaled = depNixlet.eval {
inherit (pkgs.stdenv.hostPlatform) system;
values = {
"example".example = mkForce "Hello override!";
};
};
in
evaled.config.kubernetes.resources.configMaps."test".data."test";
}
];
};
}