1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-03-29 03:04:34 +00:00
home-manager/tests/modules/programs/zsh/zshrc-content-priorities.nix
Qiming Chu 7832b5aa95
zsh: refactor zsh configuration for better order control over .zshrc (#6479)
* zsh: add initContent option for custom .zshrc content insertion

- Users can add content anywhere by using `lib.mkOrder`, `lib.mkBefore`
and `lib.mkAfter` custom configurations.
- Add test cases to verify the insertion of content before and after
existing configurations in `.zshrc`.
consolidate zshrc content tests into a single priorities test
2025-03-13 14:37:11 +01:00

36 lines
874 B
Nix

{ lib, ... }: {
programs.zsh = {
enable = true;
initContent = lib.mkMerge [
(lib.mkBefore ''
# High priority (mkBefore)
echo "High priority content"
'')
(lib.mkAfter ''
# Low priority (mkAfter)
echo "Low priority content"
'')
''
# Default priority
echo "Default priority content"
''
];
zprof.enable = true;
};
nmt.script = ''
assertFileExists home-files/.zshrc
assertFileContains home-files/.zshrc "zmodload zsh/zprof"
assertFileContains home-files/.zshrc "High priority content"
assertFileContains home-files/.zshrc "Default priority content"
assertFileContains home-files/.zshrc "Low priority content"
assertFileRegex home-files/.zshrc '^zmodload zsh/zprof'
assertFileRegex home-files/.zshrc 'echo "Low priority content"$'
'';
}