diff options
Diffstat (limited to 'home-manager/tests/modules/programs/ne/passthroughs.nix')
-rw-r--r-- | home-manager/tests/modules/programs/ne/passthroughs.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/home-manager/tests/modules/programs/ne/passthroughs.nix b/home-manager/tests/modules/programs/ne/passthroughs.nix new file mode 100644 index 00000000000..4c129e94489 --- /dev/null +++ b/home-manager/tests/modules/programs/ne/passthroughs.nix @@ -0,0 +1,73 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + # Samples taken from the ne manual. + keybindings = '' + SEQ "\x1b[1;5D" 14A + KEY 14A HELP + ''; + + menus = '' + MENU "File" + ITEM "Open... ^O" Open + ITEM "Close " Close + ITEM "DoIt " Macro DoIt + ''; + + virtualExtensions = '' + sh 1 ^#!\s*/.*\b(bash|sh|ksh|zsh)\s* + csh 1 ^#!\s*/.*\b(csh|tcsh)\s* + pl 1 ^#!\s*/.*\bperl\b + py 1 ^#!\s*/.*\bpython[0-9]*\s* + rb 1 ^#!\s*/.*\bruby\s* + xml 1 ^<\?xml + ''; + + automaticPreferences = { + nix = '' + TAB 0 + TS 2 + ''; + js = '' + TS 4 + ''; + }; + + checkFile = filename: contents: '' + assertFileExists home-files/.ne/${filename} + assertFileContent home-files/.ne/${filename} ${ + builtins.toFile "checkFile" contents + } + ''; + +in { + config = { + programs.ne = { + enable = true; + inherit keybindings; + inherit menus; + inherit virtualExtensions; + inherit automaticPreferences; + }; + + nixpkgs.overlays = + [ (self: super: { ne = pkgs.writeScriptBin "dummy-ne" ""; }) ]; + + nmt = { + description = "Check that configuration files are correctly written"; + script = concatStringsSep "\n" [ + (checkFile ".keys" keybindings) + (checkFile ".extensions" virtualExtensions) + (checkFile ".menus" menus) + + # Generates a check command for each entry in automaticPreferences. + (concatStringsSep "\n" (mapAttrsToList + (extension: contents: checkFile "${extension}#ap" contents) + automaticPreferences)) + ]; + }; + }; +} |