tests: add support for asserting warnings
This adds a "test.asserts" module that currently just provides a convenient way to assert on the content of warnings. By default all tests will assert that no warnings are given.
This commit is contained in:
parent
4dedfcfd95
commit
9d53afb709
43
tests/asserts.nix
Normal file
43
tests/asserts.nix
Normal file
|
@ -0,0 +1,43 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
options.test.asserts = {
|
||||
warnings = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Whether warning asserts are enabled.";
|
||||
};
|
||||
|
||||
expected = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
List of expected warnings.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf config.test.asserts.warnings.enable {
|
||||
home.file = {
|
||||
"asserts/warnings.actual".text = concatStringsSep ''
|
||||
|
||||
--
|
||||
'' config.warnings;
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileContent \
|
||||
home-files/asserts/warnings.actual \
|
||||
${
|
||||
pkgs.writeText "warnings.expected" (concatStringsSep ''
|
||||
|
||||
--
|
||||
'' config.test.asserts.warnings.expected)
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -25,6 +25,8 @@ let
|
|||
# Avoid including documentation since this will cause
|
||||
# unnecessary rebuilds of the tests.
|
||||
manual.manpages.enable = false;
|
||||
|
||||
imports = [ ./asserts.nix ];
|
||||
}
|
||||
];
|
||||
|
||||
|
|
|
@ -14,6 +14,12 @@ with lib;
|
|||
userName = "John Doe";
|
||||
};
|
||||
|
||||
test.asserts.warnings.expected = [''
|
||||
Using programs.git.extraConfig as a string option is
|
||||
deprecated and will be removed in the future. Please
|
||||
change to using it as an attribute set instead.
|
||||
''];
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.config/git/config
|
||||
assertFileContent home-files/.config/git/config \
|
||||
|
|
|
@ -8,7 +8,10 @@ with lib;
|
|||
config = {
|
||||
programs.lieer.enable = true;
|
||||
|
||||
accounts.email.accounts = { "hm@example.com".lieer.enable = true; };
|
||||
accounts.email.accounts."hm@example.com" = {
|
||||
lieer.enable = true;
|
||||
notmuch.enable = true;
|
||||
};
|
||||
|
||||
nixpkgs.overlays = [
|
||||
(self: super: { gmailieer = pkgs.writeScriptBin "dummy-gmailieer" ""; })
|
||||
|
|
|
@ -66,6 +66,10 @@ in {
|
|||
}];
|
||||
};
|
||||
|
||||
# Remove when https://github.com/nix-community/home-manager/issues/1686 is
|
||||
# fixed.
|
||||
test.asserts.warnings.enable = false;
|
||||
|
||||
nmt.description = ''
|
||||
Test for the broken configuration
|
||||
https://github.com/nix-community/home-manager/pull/1329#issuecomment-653253069
|
||||
|
|
|
@ -50,6 +50,10 @@ in {
|
|||
}];
|
||||
};
|
||||
|
||||
# Remove when https://github.com/nix-community/home-manager/issues/1686 is
|
||||
# fixed.
|
||||
test.asserts.warnings.enable = false;
|
||||
|
||||
nmt.script = ''
|
||||
assertPathNotExists home-files/.config/waybar/style.css
|
||||
assertFileContent \
|
||||
|
|
|
@ -11,6 +11,7 @@ with lib;
|
|||
accounts.email.accounts = {
|
||||
"hm@example.com".lieer.enable = true;
|
||||
"hm@example.com".lieer.sync.enable = true;
|
||||
"hm@example.com".notmuch.enable = true;
|
||||
};
|
||||
|
||||
nixpkgs.overlays = [
|
||||
|
|
Loading…
Reference in a new issue