about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorJon Seager <jon@sgrs.uk>2024-03-03 18:07:28 +0000
committerJon Seager <jon@sgrs.uk>2024-03-05 14:38:53 +0000
commit0b39e86cbc509bbe7d6e0a5c10f4860e68483e53 (patch)
treeba68a06c461e5f9dcd99ef6ccfbadbba942a983e /nixos
parent183bc82cca1e3175cc3bfda91fb2525bb3b88c05 (diff)
downloadnixlib-0b39e86cbc509bbe7d6e0a5c10f4860e68483e53.tar
nixlib-0b39e86cbc509bbe7d6e0a5c10f4860e68483e53.tar.gz
nixlib-0b39e86cbc509bbe7d6e0a5c10f4860e68483e53.tar.bz2
nixlib-0b39e86cbc509bbe7d6e0a5c10f4860e68483e53.tar.lz
nixlib-0b39e86cbc509bbe7d6e0a5c10f4860e68483e53.tar.xz
nixlib-0b39e86cbc509bbe7d6e0a5c10f4860e68483e53.tar.zst
nixlib-0b39e86cbc509bbe7d6e0a5c10f4860e68483e53.zip
nixosTests.homepage-dashboard: test managed and unmanaged configs
Diffstat (limited to 'nixos')
-rw-r--r--nixos/tests/homepage-dashboard.nix30
1 files changed, 26 insertions, 4 deletions
diff --git a/nixos/tests/homepage-dashboard.nix b/nixos/tests/homepage-dashboard.nix
index 56e077f5ff6d..dd36473e8ac0 100644
--- a/nixos/tests/homepage-dashboard.nix
+++ b/nixos/tests/homepage-dashboard.nix
@@ -2,13 +2,35 @@ import ./make-test-python.nix ({ lib, ... }: {
   name = "homepage-dashboard";
   meta.maintainers = with lib.maintainers; [ jnsgruk ];
 
-  nodes.machine = { pkgs, ... }: {
+  nodes.unmanaged_conf = { pkgs, ... }: {
     services.homepage-dashboard.enable = true;
   };
 
+  nodes.managed_conf = { pkgs, ... }: {
+    services.homepage-dashboard = {
+      enable = true;
+      settings.title = "custom";
+    };
+  };
+
   testScript = ''
-    machine.wait_for_unit("homepage-dashboard.service")
-    machine.wait_for_open_port(8082)
-    machine.succeed("curl --fail http://localhost:8082/")
+    # Ensure the services are started on unmanaged machine
+    unmanaged_conf.wait_for_unit("homepage-dashboard.service")
+    unmanaged_conf.wait_for_open_port(8082)
+    unmanaged_conf.succeed("curl --fail http://localhost:8082/")
+
+    # Ensure that /etc/homepage-dashboard doesn't exist, and boilerplate
+    # configs are copied into place.
+    unmanaged_conf.fail("test -d /etc/homepage-dashboard")
+    unmanaged_conf.succeed("test -f /var/lib/private/homepage-dashboard/settings.yaml")
+
+    # Ensure the services are started on managed machine
+    managed_conf.wait_for_unit("homepage-dashboard.service")
+    managed_conf.wait_for_open_port(8082)
+    managed_conf.succeed("curl --fail http://localhost:8082/")
+
+    # Ensure /etc/homepage-dashboard is created and unmanaged conf location isn't.
+    managed_conf.succeed("test -d /etc/homepage-dashboard")
+    managed_conf.fail("test -f /var/lib/private/homepage-dashboard/settings.yaml")
   '';
 })