74 lines
1.6 KiB
Nix
74 lines
1.6 KiB
Nix
|
{ 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.
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
|
||
|
assertions = {
|
||
|
enable = mkOption {
|
||
|
type = types.bool;
|
||
|
default = true;
|
||
|
description = "Whether assertion asserts are enabled.";
|
||
|
};
|
||
|
|
||
|
expected = mkOption {
|
||
|
type = types.listOf types.str;
|
||
|
default = [ ];
|
||
|
description = ''
|
||
|
List of expected assertions.
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = mkIf config.test.asserts.warnings.enable {
|
||
|
home.file = {
|
||
|
"asserts/warnings.actual".text = concatStringsSep ''
|
||
|
|
||
|
--
|
||
|
'' config.warnings;
|
||
|
|
||
|
"asserts/assertions.actual".text = concatStringsSep ''
|
||
|
|
||
|
--
|
||
|
'' (map (x: x.message) (filter (x: !x.assertion) config.assertions));
|
||
|
};
|
||
|
|
||
|
nmt.script = ''
|
||
|
assertFileContent \
|
||
|
home-files/asserts/warnings.actual \
|
||
|
${
|
||
|
pkgs.writeText "warnings.expected" (concatStringsSep ''
|
||
|
|
||
|
--
|
||
|
'' config.test.asserts.warnings.expected)
|
||
|
}
|
||
|
|
||
|
assertFileContent \
|
||
|
home-files/asserts/assertions.actual \
|
||
|
${
|
||
|
pkgs.writeText "assertions.expected" (concatStringsSep ''
|
||
|
|
||
|
--
|
||
|
'' config.test.asserts.assertions.expected)
|
||
|
}
|
||
|
'';
|
||
|
};
|
||
|
}
|