diff --git a/modules/programs/mergiraf.nix b/modules/programs/mergiraf.nix index b79bacb9..5ade2536 100644 --- a/modules/programs/mergiraf.nix +++ b/modules/programs/mergiraf.nix @@ -27,17 +27,21 @@ in config = mkIf cfg.enable { home.packages = [ cfg.package ]; - programs.git = { - attributes = [ "* merge=mergiraf" ]; - settings = { - merge = { - mergiraf = { - name = "mergiraf"; - driver = "${mergiraf} merge --git %O %A %B -s %S -x %X -y %Y -p %P -l %L"; + programs = { + git = { + attributes = [ "* merge=mergiraf" ]; + settings = { + merge = { + mergiraf = { + name = "mergiraf"; + driver = "${mergiraf} merge --git %O %A %B -s %S -x %X -y %Y -p %P -l %L"; + }; + conflictStyle = "diff3"; }; - conflictStyle = "diff3"; }; }; + + jujutsu.settings.ui.merge-editor = "mergiraf"; }; }; } diff --git a/tests/modules/programs/mergiraf/default.nix b/tests/modules/programs/mergiraf/default.nix index 67d8916b..fce09934 100644 --- a/tests/modules/programs/mergiraf/default.nix +++ b/tests/modules/programs/mergiraf/default.nix @@ -1 +1,4 @@ -{ mergiraf-basic-configuration = ./basic-configuration.nix; } +{ + mergiraf-basic-configuration = ./basic-configuration.nix; + mergiraf-jujutsu-integration = ./jujutsu-integration.nix; +} diff --git a/tests/modules/programs/mergiraf/jujutsu-integration.nix b/tests/modules/programs/mergiraf/jujutsu-integration.nix new file mode 100644 index 00000000..bb729947 --- /dev/null +++ b/tests/modules/programs/mergiraf/jujutsu-integration.nix @@ -0,0 +1,33 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.programs.jujutsu; + packageVersion = lib.getVersion cfg.package; + + # jj v0.29+ deprecated support for "~/Library/Application Support" on Darwin. + configDir = + if pkgs.stdenv.isDarwin && !(lib.versionAtLeast packageVersion "0.29.0") then + "Library/Application Support" + else + ".config"; +in +{ + programs.jujutsu = { + enable = true; + package = config.lib.test.mkStubPackage { }; + }; + programs.mergiraf.enable = true; + + nmt.script = '' + assertFileExists 'home-files/${configDir}/jj/config.toml' + assertFileContent 'home-files/${configDir}/jj/config.toml' \ + ${builtins.toFile "expected.toml" '' + [ui] + merge-editor = "mergiraf" + ''} + ''; +}