From 0f593318c5f23b91e61855842a4c22507748465b Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Wed, 6 Mar 2024 07:37:33 +0800 Subject: [PATCH] tests/modules/home-manager: init --- tests/modules/home-manager/default.nix | 56 +++++++++++++++++++ .../home-manager/programs/neovide/basic.nix | 29 ++++++++++ .../home-manager/programs/neovide/default.nix | 4 ++ .../programs/neovide/empty-settings.nix | 11 ++++ 4 files changed, 100 insertions(+) create mode 100644 tests/modules/home-manager/default.nix create mode 100644 tests/modules/home-manager/programs/neovide/basic.nix create mode 100644 tests/modules/home-manager/programs/neovide/default.nix create mode 100644 tests/modules/home-manager/programs/neovide/empty-settings.nix diff --git a/tests/modules/home-manager/default.nix b/tests/modules/home-manager/default.nix new file mode 100644 index 00000000..82a86bd5 --- /dev/null +++ b/tests/modules/home-manager/default.nix @@ -0,0 +1,56 @@ +# We're basically reimplmenting parts from the home-manager test suite here +# just with our own modules included. +{ pkgs ? import { } +, homeManagerSrc ? +, enableBig ? true +}: + +let + nmt = pkgs.nix-lib-nmt; + lib = import "${homeManagerSrc}/modules/lib/stdlib-extended.nix" pkgs.lib; + homeManagerModules = import "${homeManagerSrc}/modules/modules.nix" { + inherit pkgs lib; + check = false; + }; + modules = homeManagerModules ++ [ + ../../../modules/home-manager + ../../../modules/home-manager/_private + + # Copied over from home-manager test suite. + { + # Bypass reference inside modules/modules.nix to make the test + # suite more pure. + _module.args.pkgsPath = pkgs.path; + + # Fix impurities. Without these some of the user's environment + # will leak into the tests through `builtins.getEnv`. + xdg.enable = true; + home = { + username = "hm-user"; + homeDirectory = "/home/hm-user"; + stateVersion = lib.mkDefault "18.09"; + }; + + # Avoid including documentation since this will cause + # unnecessary rebuilds of the tests. + manual.manpages.enable = lib.mkDefault false; + + imports = [ + "${homeManagerSrc}/tests/asserts.nix" + "${homeManagerSrc}/tests/big-test.nix" + "${homeManagerSrc}/tests/stubs.nix" + ]; + + test.enableBig = enableBig; + } + ]; + + inherit (pkgs.stdenv.hostPlatform) isDarwin isLinux; +in +import nmt { + inherit pkgs lib modules; + testedAttrPath = [ "home" "activationPackage" ]; + tests = builtins.foldl' (a: b: a // (import b)) { } [ + ./programs/neovide + ]; +} diff --git a/tests/modules/home-manager/programs/neovide/basic.nix b/tests/modules/home-manager/programs/neovide/basic.nix new file mode 100644 index 00000000..da6e7378 --- /dev/null +++ b/tests/modules/home-manager/programs/neovide/basic.nix @@ -0,0 +1,29 @@ +{ config, lib, ... }: { + programs.neovide = { + enable = true; + settings = { + maximized = true; + font = { + normal = [ "MonoLisa Nerd Font" ]; + size = 18; + features.MonoLisa = [ + "+ss01" + "+ss07" + "+ss11" + "-calt" + "+ss09" + "+ss02" + "+ss14" + "+ss16" + "+ss17" + ]; + }; + }; + }; + + test.stubs.neovide = { }; + + nmt.script = '' + assertFileExists home-files/.config/neovide/config.toml + ''; +} diff --git a/tests/modules/home-manager/programs/neovide/default.nix b/tests/modules/home-manager/programs/neovide/default.nix new file mode 100644 index 00000000..efc88eb3 --- /dev/null +++ b/tests/modules/home-manager/programs/neovide/default.nix @@ -0,0 +1,4 @@ +{ + neovide-basic-settings = ./basic.nix; + neovide-empty-settings = ./empty-settings.nix; +} diff --git a/tests/modules/home-manager/programs/neovide/empty-settings.nix b/tests/modules/home-manager/programs/neovide/empty-settings.nix new file mode 100644 index 00000000..11cfdebc --- /dev/null +++ b/tests/modules/home-manager/programs/neovide/empty-settings.nix @@ -0,0 +1,11 @@ +{ ... }: + +{ + programs.neovide.enable = true; + + test.stubs.neovide = { }; + + nmt.script = '' + assertPathNotExists home-files/.config/neovide/config.toml + ''; +}