aboutsummaryrefslogtreecommitdiff
path: root/home-manager/tests/modules/programs/git.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/tests/modules/programs/git.nix')
-rw-r--r--home-manager/tests/modules/programs/git.nix74
1 files changed, 74 insertions, 0 deletions
diff --git a/home-manager/tests/modules/programs/git.nix b/home-manager/tests/modules/programs/git.nix
new file mode 100644
index 00000000000..c5203e417dc
--- /dev/null
+++ b/home-manager/tests/modules/programs/git.nix
@@ -0,0 +1,74 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ gitInclude = {
+ user = {
+ name = "John Doe";
+ email = "user@example.org";
+ };
+ };
+
+ substituteExpected = path: pkgs.substituteAll {
+ src = path;
+
+ git_include_path = pkgs.writeText "contents" (generators.toINI {} gitInclude);
+ };
+
+in
+
+{
+ config = {
+ programs.git = mkMerge [
+ {
+ enable = true;
+ aliases = {
+ a1 = "foo";
+ a2 = "bar";
+ };
+ extraConfig = {
+ extra = {
+ name = "value";
+ multiple = [1];
+ };
+ };
+ ignores = [ "*~" "*.swp" ];
+ includes = [
+ { path = "~/path/to/config.inc"; }
+ {
+ path = "~/path/to/conditional.inc";
+ condition = "gitdir:~/src/dir";
+ }
+ {
+ condition = "gitdir:~/src/dir";
+ contents = gitInclude;
+ }
+ ];
+ signing = {
+ gpgPath = "path-to-gpg";
+ key = "00112233445566778899AABBCCDDEEFF";
+ signByDefault = true;
+ };
+ userEmail = "user@example.org";
+ userName = "John Doe";
+ lfs.enable = true;
+ }
+
+ {
+ aliases.a2 = mkForce "baz";
+ extraConfig."extra \"backcompat.with.dots\"".previously = "worked";
+ extraConfig.extra.boolean = true;
+ extraConfig.extra.integer = 38;
+ extraConfig.extra.multiple = [2];
+ extraConfig.extra.subsection.value = "test";
+ }
+ ];
+
+ nmt.script = ''
+ assertFileExists home-files/.config/git/config
+ assertFileContent home-files/.config/git/config ${substituteExpected ./git-expected.conf}
+ '';
+ };
+}