aboutsummaryrefslogtreecommitdiff
path: root/home-manager/tests/default.nix
blob: a4a4da0c94c023ecd7f75fa83c5692c4859f610a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
{ pkgs ? import <nixpkgs> {} }:

let

  lib = import ../modules/lib/stdlib-extended.nix pkgs.lib;

  nmt = pkgs.fetchFromGitLab {
    owner = "rycee";
    repo = "nmt";
    rev = "8e130d655ec396ce165763c95bbf4ac429810ca8";
    sha256 = "1jbljr06kg1ycdn24hj8xap16axq11rhb6hm4949fz48n57pwwps";
  };

  modules = import ../modules/modules.nix {
    inherit lib pkgs;
    check = false;
  } ++ [
    {
      # 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";
      home.homeDirectory = "/home/hm-user";

      # Avoid including documentation since this will cause
      # unnecessary rebuilds of the tests.
      manual.manpages.enable = false;
    }
  ];

in

import nmt {
  inherit lib pkgs modules;
  testedAttrPath = [ "home" "activationPackage" ];
  tests = builtins.foldl' (a: b: a // (import b)) { } ([
    ./lib/types
    ./modules/files
    ./modules/home-environment
    ./modules/misc/fontconfig
    ./modules/programs/alacritty
    ./modules/programs/alot
    ./modules/programs/aria2
    ./modules/programs/bash
    ./modules/programs/browserpass
    ./modules/programs/dircolors
    ./modules/programs/direnv
    ./modules/programs/fish
    ./modules/programs/git
    ./modules/programs/gpg
    ./modules/programs/i3status
    ./modules/programs/kakoune
    ./modules/programs/lf
    ./modules/programs/lieer
    ./modules/programs/man
    ./modules/programs/mbsync
    ./modules/programs/ncmpcpp
    ./modules/programs/ne
    ./modules/programs/neomutt
    ./modules/programs/newsboat
    ./modules/programs/nushell
    ./modules/programs/qutebrowser
    ./modules/programs/readline
    ./modules/programs/powerline-go
    ./modules/programs/ssh
    ./modules/programs/starship
    ./modules/programs/texlive
    ./modules/programs/tmux
    ./modules/programs/vscode
    ./modules/programs/zplug
    ./modules/programs/zsh
    ./modules/xresources
  ] ++ lib.optionals pkgs.stdenv.hostPlatform.isDarwin [
    ./modules/targets-darwin
  ] ++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [
    ./meta # Suffices to run on one platform.
    ./modules/misc/debug
    ./modules/misc/numlock
    ./modules/misc/pam
    ./modules/misc/xdg
    ./modules/misc/xsession
    ./modules/programs/abook
    ./modules/programs/autorandr
    ./modules/services/dropbox
    ./modules/services/emacs
    ./modules/services/dropbox
    ./modules/programs/firefox
    ./modules/programs/getmail
    ./modules/services/lieer
    ./modules/programs/ncmpcpp-linux
    ./modules/programs/rofi
    ./modules/programs/waybar
    ./modules/services/kanshi
    ./modules/services/polybar
    ./modules/services/sxhkd
    ./modules/services/fluidsynth
    ./modules/services/window-managers/i3
    ./modules/services/window-managers/sway
    ./modules/systemd
    ./modules/targets-linux
  ]);
}