{ lib, pkgs, ... }:

{
  nixpkgs.overlays = [
    (_self: super: rec {
      emacs = pkgs.writeShellScriptBin "dummy-emacs-28.0.5" "" // {
        outPath = "@emacs@";
      };
      emacsPackagesFor =
        _:
        lib.makeScope super.newScope (_: {
          emacsWithPackages = _: emacs;
        });
    })
  ];

  services.emacs = {
    enable = true;
  };

  nmt.script = ''
    serviceFile=LaunchAgents/org.nix-community.home.emacs.plist

    assertFileExists "$serviceFile"

    assertFileContent "$serviceFile" ${./expected-agent.plist}
  '';
}
