home-manager/tests/default.nix
Thiago Kenji Okada 2c0e3f61da
mpv: fix issue #1725 and add tests (#1726)
Closes issue #1725.

This allows mpv module to be customized with support for more advanced
features than the `programs.mpv.scripts` current support. For example,
with this change now this is possible:

```nix
{
  programs.mpv.package = (pkgs.wrapMpv (pkgs.mpv-unwrapped.override {
    vapoursynthSupport = true;
  }) {
    extraMakeWrapperArgs = [
      "--prefix" "LD_LIBRARY_PATH" ":" "${pkgs.vapoursynth-mvtools}/lib/vapoursynth"
    ];
  });
}

```

Since `programs.mpv.package` doesn't necessary reflect the final
derivation anymore (see #1524), we introduce `programs.mpv.finalPackage`
that has the resulting derivation.

This includes 2 tests:
- One to check if everything is alright with mpv
- Other to validate our assertion that package and scripts can't be
  passed both at the same time

* docs: document recent mpv module changes

* mpv: add thiagokokada as maintainer
2021-01-21 18:10:12 -05:00

112 lines
3.1 KiB
Nix

{ pkgs ? import <nixpkgs> {} }:
let
lib = import ../modules/lib/stdlib-extended.nix pkgs.lib;
nmt = pkgs.fetchFromGitLab {
owner = "rycee";
repo = "nmt";
rev = "d2cc8c1042b1c2511f68f40e2790a8c0e29eeb42";
sha256 = "1ykcvyx82nhdq167kbnpgwkgjib8ii7c92y3427v986n2s5lsskc";
};
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;
imports = [ ./asserts.nix ];
}
];
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/autojump
./modules/programs/bash
./modules/programs/browserpass
./modules/programs/dircolors
./modules/programs/direnv
./modules/programs/feh
./modules/programs/fish
./modules/programs/gh
./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/mpv
./modules/programs/ncmpcpp
./modules/programs/ne
./modules/programs/neomutt
./modules/programs/newsboat
./modules/programs/nushell
./modules/programs/powerline-go
./modules/programs/qutebrowser
./modules/programs/readline
./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 [
./modules/misc/debug
./modules/misc/numlock
./modules/misc/pam
./modules/misc/xdg
./modules/misc/xsession
./modules/programs/abook
./modules/programs/autorandr
./modules/programs/firefox
./modules/programs/getmail
./modules/programs/i3status-rust
./modules/programs/ncmpcpp-linux
./modules/programs/neovim # Broken package dependency on Darwin.
./modules/programs/rofi
./modules/programs/rofi-pass
./modules/programs/waybar
./modules/services/dropbox
./modules/services/emacs
./modules/services/fluidsynth
./modules/services/kanshi
./modules/services/lieer
./modules/services/pbgopy
./modules/services/polybar
./modules/services/sxhkd
./modules/services/window-managers/i3
./modules/services/window-managers/sway
./modules/services/wlsunset
./modules/systemd
./modules/targets-linux
]);
}