60 lines
1.4 KiB
Nix
60 lines
1.4 KiB
Nix
|
|
{
|
||
|
|
# Evaluates a minimal Home Manager module from `module.nix` and verifies
|
||
|
|
# its effect through a throwaway Home Manager configuration.
|
||
|
|
description = "A minimal Home Manager module";
|
||
|
|
|
||
|
|
inputs = {
|
||
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||
|
|
|
||
|
|
home-manager = {
|
||
|
|
url = "github:nix-community/home-manager";
|
||
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
||
|
|
};
|
||
|
|
};
|
||
|
|
|
||
|
|
outputs =
|
||
|
|
{
|
||
|
|
nixpkgs,
|
||
|
|
home-manager,
|
||
|
|
...
|
||
|
|
}:
|
||
|
|
let
|
||
|
|
system = "x86_64-linux";
|
||
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
||
|
|
|
||
|
|
testConfig = home-manager.lib.homeManagerConfiguration {
|
||
|
|
inherit pkgs;
|
||
|
|
modules = [
|
||
|
|
./module.nix
|
||
|
|
{
|
||
|
|
home = {
|
||
|
|
username = "learner";
|
||
|
|
homeDirectory = "/home/learner";
|
||
|
|
stateVersion = "24.11";
|
||
|
|
};
|
||
|
|
playground.welcome = {
|
||
|
|
enable = true;
|
||
|
|
name = "flakes";
|
||
|
|
};
|
||
|
|
}
|
||
|
|
];
|
||
|
|
};
|
||
|
|
in
|
||
|
|
{
|
||
|
|
checks.${system}.welcome =
|
||
|
|
pkgs.runCommand "home-manager-welcome-check"
|
||
|
|
{
|
||
|
|
got = testConfig.config.home.file."welcome.txt".text;
|
||
|
|
expected = "hello, flakes";
|
||
|
|
}
|
||
|
|
''
|
||
|
|
if [ "$got" = "$expected" ]; then
|
||
|
|
echo ok > "$out"
|
||
|
|
else
|
||
|
|
echo "unexpected welcome text: $got" >&2
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
'';
|
||
|
|
};
|
||
|
|
}
|