diff --git a/tests/modules/services/dunst/default.nix b/tests/modules/services/dunst/default.nix new file mode 100644 index 000000000..c5c42c08b --- /dev/null +++ b/tests/modules/services/dunst/default.nix @@ -0,0 +1,6 @@ +{ lib, pkgs, ... }: + +lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux { + dunst-with-settings = ./with-settings.nix; + dunst-without-settings = ./without-settings.nix; +} diff --git a/tests/modules/services/dunst/with-settings-expected.ini b/tests/modules/services/dunst/with-settings-expected.ini new file mode 100644 index 000000000..73a50ecca --- /dev/null +++ b/tests/modules/services/dunst/with-settings-expected.ini @@ -0,0 +1,14 @@ +[global] +font="Droid Sans 9" +frame_color="#eceff1" +height=300 +icon_path="/run/current-system/sw/share/icons/hicolor/32x32/actions:/run/current-system/sw/share/icons/hicolor/32x32/animations:/run/current-system/sw/share/icons/hicolor/32x32/apps:/run/current-system/sw/share/icons/hicolor/32x32/categories:/run/current-system/sw/share/icons/hicolor/32x32/devices:/run/current-system/sw/share/icons/hicolor/32x32/emblems:/run/current-system/sw/share/icons/hicolor/32x32/emotes:/run/current-system/sw/share/icons/hicolor/32x32/filesystem:/run/current-system/sw/share/icons/hicolor/32x32/intl:/run/current-system/sw/share/icons/hicolor/32x32/legacy:/run/current-system/sw/share/icons/hicolor/32x32/mimetypes:/run/current-system/sw/share/icons/hicolor/32x32/places:/run/current-system/sw/share/icons/hicolor/32x32/status:/run/current-system/sw/share/icons/hicolor/32x32/stock:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/actions:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/animations:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/apps:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/categories:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/devices:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/emblems:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/emotes:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/filesystem:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/intl:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/legacy:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/mimetypes:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/places:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/status:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/stock:@hicolor-icon-theme@/share/icons/hicolor/32x32/actions:@hicolor-icon-theme@/share/icons/hicolor/32x32/animations:@hicolor-icon-theme@/share/icons/hicolor/32x32/apps:@hicolor-icon-theme@/share/icons/hicolor/32x32/categories:@hicolor-icon-theme@/share/icons/hicolor/32x32/devices:@hicolor-icon-theme@/share/icons/hicolor/32x32/emblems:@hicolor-icon-theme@/share/icons/hicolor/32x32/emotes:@hicolor-icon-theme@/share/icons/hicolor/32x32/filesystem:@hicolor-icon-theme@/share/icons/hicolor/32x32/intl:@hicolor-icon-theme@/share/icons/hicolor/32x32/legacy:@hicolor-icon-theme@/share/icons/hicolor/32x32/mimetypes:@hicolor-icon-theme@/share/icons/hicolor/32x32/places:@hicolor-icon-theme@/share/icons/hicolor/32x32/status:@hicolor-icon-theme@/share/icons/hicolor/32x32/stock" +offset="30x50" +origin="top-right" +transparency=10 +width=300 + +[urgency_normal] +background="#37474f" +foreground="#eceff1" +timeout=10 diff --git a/tests/modules/services/dunst/with-settings.nix b/tests/modules/services/dunst/with-settings.nix new file mode 100644 index 000000000..7c853be2a --- /dev/null +++ b/tests/modules/services/dunst/with-settings.nix @@ -0,0 +1,59 @@ +{ config, ... }: +let + inherit (config.lib.test) mkStubPackage; +in +{ + services.dunst = { + enable = true; + package = mkStubPackage { + name = "dunst"; + buildScript = '' + mkdir -p $out/share/dbus-1/services + echo test > $out/share/dbus-1/services/org.knopwob.dunst.service + ''; + }; + settings = { + global = { + width = 300; + height = 300; + offset = "30x50"; + origin = "top-right"; + transparency = 10; + frame_color = "#eceff1"; + font = "Droid Sans 9"; + }; + + urgency_normal = { + background = "#37474f"; + foreground = "#eceff1"; + timeout = 10; + }; + }; + }; + + nmt.script = '' + configFile=home-files/.config/dunst/dunstrc + serviceFile=home-files/.config/systemd/user/dunst.service + + assertFileExists $configFile + assertFileContent $configFile ${./with-settings-expected.ini} + + assertFileExists $serviceFile + assertFileContent \ + $(normalizeStorePaths $serviceFile) \ + ${builtins.toFile "expected.service" '' + [Service] + BusName=org.freedesktop.Notifications + Environment= + ExecReload=/nix/store/00000000000000000000000000000000-dunst/bin/dunstctl reload + ExecStart=/nix/store/00000000000000000000000000000000-dunst/bin/dunst + Type=dbus + + [Unit] + After=graphical-session.target + Description=Dunst notification daemon + PartOf=graphical-session.target + X-Reload-Triggers=/nix/store/00000000000000000000000000000000-hm_dunstdunstrc + ''} + ''; +} diff --git a/tests/modules/services/dunst/without-settings-expected.ini b/tests/modules/services/dunst/without-settings-expected.ini new file mode 100644 index 000000000..d3ee2d574 --- /dev/null +++ b/tests/modules/services/dunst/without-settings-expected.ini @@ -0,0 +1,2 @@ +[global] +icon_path="/run/current-system/sw/share/icons/hicolor/32x32/actions:/run/current-system/sw/share/icons/hicolor/32x32/animations:/run/current-system/sw/share/icons/hicolor/32x32/apps:/run/current-system/sw/share/icons/hicolor/32x32/categories:/run/current-system/sw/share/icons/hicolor/32x32/devices:/run/current-system/sw/share/icons/hicolor/32x32/emblems:/run/current-system/sw/share/icons/hicolor/32x32/emotes:/run/current-system/sw/share/icons/hicolor/32x32/filesystem:/run/current-system/sw/share/icons/hicolor/32x32/intl:/run/current-system/sw/share/icons/hicolor/32x32/legacy:/run/current-system/sw/share/icons/hicolor/32x32/mimetypes:/run/current-system/sw/share/icons/hicolor/32x32/places:/run/current-system/sw/share/icons/hicolor/32x32/status:/run/current-system/sw/share/icons/hicolor/32x32/stock:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/actions:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/animations:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/apps:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/categories:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/devices:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/emblems:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/emotes:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/filesystem:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/intl:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/legacy:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/mimetypes:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/places:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/status:/home/hm-user/.nix-profile/share/icons/hicolor/32x32/stock:@hicolor-icon-theme@/share/icons/hicolor/32x32/actions:@hicolor-icon-theme@/share/icons/hicolor/32x32/animations:@hicolor-icon-theme@/share/icons/hicolor/32x32/apps:@hicolor-icon-theme@/share/icons/hicolor/32x32/categories:@hicolor-icon-theme@/share/icons/hicolor/32x32/devices:@hicolor-icon-theme@/share/icons/hicolor/32x32/emblems:@hicolor-icon-theme@/share/icons/hicolor/32x32/emotes:@hicolor-icon-theme@/share/icons/hicolor/32x32/filesystem:@hicolor-icon-theme@/share/icons/hicolor/32x32/intl:@hicolor-icon-theme@/share/icons/hicolor/32x32/legacy:@hicolor-icon-theme@/share/icons/hicolor/32x32/mimetypes:@hicolor-icon-theme@/share/icons/hicolor/32x32/places:@hicolor-icon-theme@/share/icons/hicolor/32x32/status:@hicolor-icon-theme@/share/icons/hicolor/32x32/stock" diff --git a/tests/modules/services/dunst/without-settings.nix b/tests/modules/services/dunst/without-settings.nix new file mode 100644 index 000000000..b4b0ce97e --- /dev/null +++ b/tests/modules/services/dunst/without-settings.nix @@ -0,0 +1,42 @@ +{ config, ... }: +let + inherit (config.lib.test) mkStubPackage; +in +{ + services.dunst = { + enable = true; + package = mkStubPackage { + name = "dunst"; + buildScript = '' + mkdir -p $out/share/dbus-1/services + echo test > $out/share/dbus-1/services/org.knopwob.dunst.service + ''; + }; + }; + + nmt.script = '' + configFile=home-files/.config/dunst/dunstrc + serviceFile=home-files/.config/systemd/user/dunst.service + + assertFileExists $configFile + assertFileContent $configFile ${./without-settings-expected.ini} + + assertFileExists $serviceFile + assertFileContent \ + $(normalizeStorePaths $serviceFile) \ + ${builtins.toFile "expected.service" '' + [Service] + BusName=org.freedesktop.Notifications + Environment= + ExecReload=/nix/store/00000000000000000000000000000000-dunst/bin/dunstctl reload + ExecStart=/nix/store/00000000000000000000000000000000-dunst/bin/dunst + Type=dbus + + [Unit] + After=graphical-session.target + Description=Dunst notification daemon + PartOf=graphical-session.target + X-Reload-Triggers=/nix/store/00000000000000000000000000000000-hm_dunstdunstrc + ''} + ''; +}