From e1b59f78a99cebc1f3860040239da46dc59e226b Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Fri, 27 Dec 2024 18:36:59 +0100 Subject: [PATCH] nixos/homer: add tests --- nixos/tests/all-tests.nix | 1 + nixos/tests/homer/caddy.nix | 30 ++++++++++++++++++++++++++++++ nixos/tests/homer/default.nix | 6 ++++++ nixos/tests/homer/nginx.nix | 30 ++++++++++++++++++++++++++++++ pkgs/by-name/ho/homer/package.nix | 8 +++++++- 5 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 nixos/tests/homer/caddy.nix create mode 100644 nixos/tests/homer/default.nix create mode 100644 nixos/tests/homer/nginx.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 384371033c72..e82c99f56b51 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -436,6 +436,7 @@ in { hedgedoc = handleTest ./hedgedoc.nix {}; herbstluftwm = handleTest ./herbstluftwm.nix {}; homebox = handleTest ./homebox.nix {}; + homer = handleTest ./homer {}; homepage-dashboard = handleTest ./homepage-dashboard.nix {}; honk = runTest ./honk.nix; installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {}); diff --git a/nixos/tests/homer/caddy.nix b/nixos/tests/homer/caddy.nix new file mode 100644 index 000000000000..18a37cbc20ca --- /dev/null +++ b/nixos/tests/homer/caddy.nix @@ -0,0 +1,30 @@ +import ../make-test-python.nix ( + { lib, ... }: + + { + name = "homer-caddy"; + meta.maintainers = with lib.maintainers; [ stunkymonkey ]; + + nodes.machine = + { pkgs, ... }: + { + services.homer = { + enable = true; + virtualHost = { + caddy.enable = true; + domain = "localhost:80"; + }; + settings = { + title = "testing"; + }; + }; + }; + + testScript = '' + machine.wait_for_unit("caddy.service") + machine.wait_for_open_port(80) + machine.succeed("curl --fail --show-error --silent http://localhost:80/ | grep 'Homer'") + machine.succeed("curl --fail --show-error --silent http://localhost:80/assets/config.yml | grep 'title: testing'") + ''; + } +) diff --git a/nixos/tests/homer/default.nix b/nixos/tests/homer/default.nix new file mode 100644 index 000000000000..fee30e520c7f --- /dev/null +++ b/nixos/tests/homer/default.nix @@ -0,0 +1,6 @@ +{ system, pkgs, ... }: + +{ + caddy = import ./caddy.nix { inherit system pkgs; }; + nginx = import ./nginx.nix { inherit system pkgs; }; +} diff --git a/nixos/tests/homer/nginx.nix b/nixos/tests/homer/nginx.nix new file mode 100644 index 000000000000..39dd0c2c52ac --- /dev/null +++ b/nixos/tests/homer/nginx.nix @@ -0,0 +1,30 @@ +import ../make-test-python.nix ( + { lib, ... }: + + { + name = "homer-nginx"; + meta.maintainers = with lib.maintainers; [ stunkymonkey ]; + + nodes.machine = + { pkgs, ... }: + { + services.homer = { + enable = true; + virtualHost = { + nginx.enable = true; + domain = "localhost"; + }; + settings = { + title = "testing"; + }; + }; + }; + + testScript = '' + machine.wait_for_unit("nginx.service") + machine.wait_for_open_port(80) + machine.succeed("curl --fail --show-error --silent http://localhost:80/ | grep 'Homer'") + machine.succeed("curl --fail --show-error --silent http://localhost:80/assets/config.yml | grep 'title: testing'") + ''; + } +) diff --git a/pkgs/by-name/ho/homer/package.nix b/pkgs/by-name/ho/homer/package.nix index 50fe5bf1fc59..7d104aa46ff0 100644 --- a/pkgs/by-name/ho/homer/package.nix +++ b/pkgs/by-name/ho/homer/package.nix @@ -6,6 +6,7 @@ nodejs, dart-sass, nix-update-script, + nixosTests, }: stdenvNoCC.mkDerivation rec { pname = "homer"; @@ -54,7 +55,12 @@ stdenvNoCC.mkDerivation rec { runHook postInstall ''; - passthru.updateScript = nix-update-script { }; + passthru = { + updateScript = nix-update-script { }; + tests = { + inherit (nixosTests.homer) caddy nginx; + }; + }; meta = with lib; { description = "A very simple static homepage for your server.";