2023-07-15 17:15:38 +00:00
|
|
|
import ./make-test-python.nix ({ lib, ... }: {
|
|
|
|
name = "homepage-dashboard";
|
|
|
|
meta.maintainers = with lib.maintainers; [ jnsgruk ];
|
|
|
|
|
2024-04-21 15:54:59 +00:00
|
|
|
nodes.unmanaged_conf = { pkgs, ... }: {
|
2023-07-15 17:15:38 +00:00
|
|
|
services.homepage-dashboard.enable = true;
|
|
|
|
};
|
|
|
|
|
2024-04-21 15:54:59 +00:00
|
|
|
nodes.managed_conf = { pkgs, ... }: {
|
|
|
|
services.homepage-dashboard = {
|
|
|
|
enable = true;
|
|
|
|
settings.title = "custom";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-07-15 17:15:38 +00:00
|
|
|
testScript = ''
|
2024-04-21 15:54:59 +00:00
|
|
|
# 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")
|
2023-07-15 17:15:38 +00:00
|
|
|
'';
|
|
|
|
})
|