diff --git a/tests/modules/services/keynav/default.nix b/tests/modules/services/keynav/default.nix new file mode 100644 index 000000000..c1b29b59d --- /dev/null +++ b/tests/modules/services/keynav/default.nix @@ -0,0 +1,6 @@ +{ lib, pkgs, ... }: + +lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux { + keynav-enable = ./enable.nix; + keynav-extra-config = ./extra-config.nix; +} diff --git a/tests/modules/services/keynav/enable-expected.service b/tests/modules/services/keynav/enable-expected.service new file mode 100644 index 000000000..304c86ebe --- /dev/null +++ b/tests/modules/services/keynav/enable-expected.service @@ -0,0 +1,12 @@ +[Install] +WantedBy=graphical-session.target + +[Service] +ExecStart=@keynav@/bin/keynav +Restart=always +RestartSec=3 + +[Unit] +After=graphical-session.target +Description=keynav +PartOf=graphical-session.target diff --git a/tests/modules/services/keynav/enable.nix b/tests/modules/services/keynav/enable.nix new file mode 100644 index 000000000..c50f4a3be --- /dev/null +++ b/tests/modules/services/keynav/enable.nix @@ -0,0 +1,18 @@ +{ config, ... }: + +{ + services.keynav = { + enable = true; + package = config.lib.test.mkStubPackage { + name = "keynav"; + outPath = "@keynav@"; + }; + }; + + nmt.script = '' + serviceFile=home-files/.config/systemd/user/keynav.service + assertFileExists $serviceFile + assertFileContent $serviceFile ${./enable-expected.service} + assertPathNotExists home-files/.keynavrc + ''; +} diff --git a/tests/modules/services/keynav/extra-config-expected.keynavrc b/tests/modules/services/keynav/extra-config-expected.keynavrc new file mode 100644 index 000000000..adf858982 --- /dev/null +++ b/tests/modules/services/keynav/extra-config-expected.keynavrc @@ -0,0 +1,3 @@ +2 doubleclick,end +4 click 4 +5 click 5 diff --git a/tests/modules/services/keynav/extra-config-expected.service b/tests/modules/services/keynav/extra-config-expected.service new file mode 100644 index 000000000..29ee65d8e --- /dev/null +++ b/tests/modules/services/keynav/extra-config-expected.service @@ -0,0 +1,13 @@ +[Install] +WantedBy=graphical-session.target + +[Service] +ExecStart=@keynav@/bin/keynav +Restart=always +RestartSec=3 + +[Unit] +After=graphical-session.target +Description=keynav +PartOf=graphical-session.target +X-Restart-Triggers=/nix/store/00000000000000000000000000000000-keynavrc diff --git a/tests/modules/services/keynav/extra-config.nix b/tests/modules/services/keynav/extra-config.nix new file mode 100644 index 000000000..8d4fb2d6e --- /dev/null +++ b/tests/modules/services/keynav/extra-config.nix @@ -0,0 +1,25 @@ +{ config, ... }: + +{ + services.keynav = { + enable = true; + package = config.lib.test.mkStubPackage { + name = "keynav"; + outPath = "@keynav@"; + }; + settings = { + "2" = "doubleclick,end"; + "4" = "click 4"; + "5" = "click 5"; + }; + }; + + nmt.script = '' + serviceFile=home-files/.config/systemd/user/keynav.service + assertFileExists $serviceFile + assertFileContent $(normalizeStorePaths $serviceFile) ${./extra-config-expected.service} + + assertFileExists home-files/.config/keynav/keynavrc + assertFileContent home-files/.config/keynav/keynavrc ${./extra-config-expected.keynavrc} + ''; +}