From 028fb8d43bbcd2fcc08bc8265b3910ab32c9cf23 Mon Sep 17 00:00:00 2001 From: technofab Date: Mon, 9 Feb 2026 20:49:54 +0100 Subject: [PATCH] test: add nixlet dependency tests --- docs/importing.md | 3 +-- tests/fixtures/dependency/default.nix | 3 +++ tests/fixtures/dependency/nixlet.nix | 6 ++++++ tests/fixtures/dependency/values.nix | 5 +++++ tests/fixtures/example/default.nix | 3 +++ tests/lib_test.nix | 26 +++++++++++++++++++++++++- 6 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 tests/fixtures/dependency/default.nix create mode 100644 tests/fixtures/dependency/nixlet.nix create mode 100644 tests/fixtures/dependency/values.nix create mode 100644 tests/fixtures/example/default.nix diff --git a/docs/importing.md b/docs/importing.md index 6bca353..d31088e 100644 --- a/docs/importing.md +++ b/docs/importing.md @@ -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; ``` - diff --git a/tests/fixtures/dependency/default.nix b/tests/fixtures/dependency/default.nix new file mode 100644 index 0000000..ba61e10 --- /dev/null +++ b/tests/fixtures/dependency/default.nix @@ -0,0 +1,3 @@ +{nixlet-lib, ...}: { + config.nixlet.dependencies."example" = nixlet-lib.mkNixlet ../example; +} diff --git a/tests/fixtures/dependency/nixlet.nix b/tests/fixtures/dependency/nixlet.nix new file mode 100644 index 0000000..087b2e9 --- /dev/null +++ b/tests/fixtures/dependency/nixlet.nix @@ -0,0 +1,6 @@ +{ + name = "dep"; + version = "0.0.1"; + description = "hello world"; + defaultProject = "dep"; +} diff --git a/tests/fixtures/dependency/values.nix b/tests/fixtures/dependency/values.nix new file mode 100644 index 0000000..aeba6a4 --- /dev/null +++ b/tests/fixtures/dependency/values.nix @@ -0,0 +1,5 @@ +_: { + options = {}; + + config."example".example = "Hello dependency!"; +} diff --git a/tests/fixtures/example/default.nix b/tests/fixtures/example/default.nix new file mode 100644 index 0000000..6f71e66 --- /dev/null +++ b/tests/fixtures/example/default.nix @@ -0,0 +1,3 @@ +{nixlet, ...}: with nixlet; { + kubernetes.resources.configMaps."test".data."test" = values.example; +} diff --git a/tests/lib_test.nix b/tests/lib_test.nix index eeeb34b..fafb038 100644 --- a/tests/lib_test.nix +++ b/tests/lib_test.nix @@ -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"; + } ]; }; }