{ config, lib, pkgs, ... }: let testScript = pkgs.writeText "test.el" '' ;; Emacs won't automatically load default.el when --script is specified (load "default") (let* ((test-load-config (eq hm 'home-manager)) (test-load-package (eq (hm-test-fn) 'success)) (is-ok (and test-load-config test-load-package))) (kill-emacs (if is-ok 0 1))) ''; emacsBin = "${config.programs.emacs.finalPackage}/bin/emacs"; mkTestPackage = epkgs: epkgs.trivialBuild { pname = "hm-test"; src = pkgs.writeText "hm-test.el" '' (defun hm-test-fn () 'success) (provide 'hm-test) ''; }; in lib.mkIf config.test.enableBig { programs.emacs = { enable = true; package = pkgs.emacs-nox; extraConfig = '' (require 'hm-test) (setq hm 'home-manager) ''; extraPackages = epkgs: [ (mkTestPackage epkgs) ]; }; # running emacs with --script would enable headless mode nmt.script = '' if ! ${emacsBin} --script ${testScript}; then fail "Failed to load default.el." fi ''; }