1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-03-10 10:47:02 +00:00
home-manager/tests/modules/programs/firefox/final-package.nix
Andrew Marshall bd530df4e2
firefox: avoid unnecessarily overriding package
When `cfg.package` is already wrapped, and wrapped without the
`ExtensionSettings` key set, this would always add that key, even if its
value was blank. This would result in `cfg.finalPackage` being a
functionally-identical, but differently-input-addressed package. This is
generally undesirable as it may result in multiple derivations being
built, and also if the value of `cfg.package` is expected to be
unchanged by the user (e.g. because they want it to be consistent
between NixOS and HM configuration).

Add a test to ensure this does not regress in the default case. Only
test on newish stateVersion since the logic for `isWrapped` differs on
older versions.
2025-01-29 18:29:44 +01:00

25 lines
605 B
Nix

modulePath:
{ config, lib, pkgs, ... }:
let
cfg = lib.getAttrFromPath modulePath config;
firefoxMockOverlay = import ./setup-firefox-mock-overlay.nix modulePath;
in {
imports = [ firefoxMockOverlay ];
config = lib.mkIf config.test.enableBig
(lib.setAttrByPath modulePath { enable = true; } // {
home.stateVersion = "19.09";
nmt.script = ''
package=${cfg.package}
finalPackage=${cfg.finalPackage}
if [[ $package != $finalPackage ]]; then
fail "Expected finalPackage ($finalPackage) to equal package ($package)"
fi
'';
});
}