fix(nginx): Propagate dnsProvider to www hosts

When we auto-created www hosts, we made an oversight by not also
propagating dnsProvider. This caused an error when using www, which we
missed because our tests also didn't check for propagation of
dnsProvider

In the meantime, we need to update our unit tests for these functions,
as by missing out dnsProvider we have effectively nailed down its
nonexistence

Finally, we also add a regression test (auxolotl-eval.check.nix), based
on the real-life example that made this fail - provided by Auxolotl's
Jake Hamilton (thanks!). That file is licensed as Auxolotl's infra is

Change-Id: I8a08a29033b9d47ca43ce87f24fe17823a6da440
Reviewed-on: https://git.clicks.codes/c/Infra/NixFiles/+/817
Tested-by: Skyler Grey <minion@clicks.codes>
Reviewed-by: Samuel Shuert <coded@clicks.codes>
diff --git a/modules/nixos/clicks/services/nginx/auxolotl-eval.check.nix b/modules/nixos/clicks/services/nginx/auxolotl-eval.check.nix
new file mode 100644
index 0000000..c6201df
--- /dev/null
+++ b/modules/nixos/clicks/services/nginx/auxolotl-eval.check.nix
@@ -0,0 +1,60 @@
+# SPDX-FileCopyrightText: 2024 Auxolotl Infrastructure Contributors
+# SPDX-FileCopyrightText: 2024 Clicks Codes
+#
+# SPDX-License-Identifier: GPL-3.0-only
+
+{ inputs, lib, channels, ... }:
+let
+  modules = [
+    {
+      system.stateVersion = "24.05";
+    }
+    {
+      fileSystems."/" = {
+        device = "none";
+        fsType = "tmpfs";
+      };
+    }
+    {
+      boot.loader.grub.device = "nodev";
+    }
+    {
+      nixpkgs.config = {
+        allowBroken = true;
+        allowUnfree = true;
+      };
+    }
+    {
+      clicks.services = {
+        nginx = {
+          enable = true;
+
+          hosts = {
+            "aux.computer" = {
+              service = lib.clicks.nginx.http.redirectPermanent "https://auxolotl.org";
+              www = false;
+            };
+
+            "forum.aux.computer" = {
+              service = lib.clicks.nginx.http.redirectPermanent "https://forum.auxolotl.org";
+              www = false;
+            };
+          };
+        };
+      };
+    }
+    {
+      clicks.security.acme = {
+        enable = true;
+        defaults.email = "check@example.com";
+      };
+    }
+  ];
+  libPlusClicks = lib.attrsets.recursiveUpdate channels.unstable.lib {
+    clicks = lib.clicks; # Our own lib is permitted as a requirement... but we're doing this song/dance to stop us, say, relying on snowfall lib/agenix lix/whatever...
+  };
+in (inputs.unstable.lib.nixosSystem {
+  lib = libPlusClicks;
+  system = channels.unstable.system;
+  modules = (lib.attrsets.attrValues inputs.self.nixosModules) ++ modules;
+}).config.system.build.toplevel