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.
wip/yesman
Robert Helgesson 3 years ago
parent 4dedfcfd95
commit 9d53afb709
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
  1. 43
      tests/asserts.nix
  2. 2
      tests/default.nix
  3. 6
      tests/modules/programs/git/git-with-str-extra-config.nix
  4. 5
      tests/modules/programs/lieer/lieer.nix
  5. 4
      tests/modules/programs/waybar/broken-settings.nix
  6. 4
      tests/modules/programs/waybar/settings-complex.nix
  7. 1
      tests/modules/services/lieer/lieer-service.nix

@ -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…
Cancel
Save