about summary refs log tree commit diff
path: root/nixos/tests/invidious.nix
diff options
context:
space:
mode:
authorSophie Tauchert <sophie@999eagle.moe>2023-11-06 17:54:28 +0100
committerSophie Tauchert <sophie@999eagle.moe>2023-12-17 19:48:03 +0100
commitac5c1886fd9fe49748d7ab80accc4c847481df14 (patch)
tree6e8377f2d29b9ed268ebe335608794c52f51e33c /nixos/tests/invidious.nix
parent5e320dba222b5bd67f80289818ec7f361b04b112 (diff)
nixos/invidious: add option to configure http3-ytproxy for invidious
Diffstat (limited to 'nixos/tests/invidious.nix')
-rw-r--r--nixos/tests/invidious.nix22
1 files changed, 22 insertions, 0 deletions
diff --git a/nixos/tests/invidious.nix b/nixos/tests/invidious.nix
index 8c2342f66ea68..aab62e26b82b7 100644
--- a/nixos/tests/invidious.nix
+++ b/nixos/tests/invidious.nix
@@ -53,6 +53,19 @@ import ./make-test-python.nix ({ pkgs, ... }: {
           };
           networking.hosts."127.0.0.1" = [ "invidious.example.com" ];
         };
+        nginx-scale-ytproxy.configuration = {
+          services.invidious = {
+            nginx.enable = true;
+            http3-ytproxy.enable = true;
+            domain = "invidious.example.com";
+            serviceScale = 3;
+          };
+          services.nginx.virtualHosts."invidious.example.com" = {
+            forceSSL = false;
+            enableACME = false;
+          };
+          networking.hosts."127.0.0.1" = [ "invidious.example.com" ];
+        };
         postgres-tcp.configuration = {
           services.invidious = {
             database = {
@@ -98,6 +111,15 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     machine.succeed("journalctl -eu invidious-1.service | grep -o '200 GET /search'")
     machine.succeed("journalctl -eu invidious-2.service | grep -o '200 GET /search'")
 
+    activate_specialisation("nginx-scale-ytproxy")
+    machine.wait_for_unit("http3-ytproxy.service")
+    machine.wait_for_open_port(80)
+    machine.wait_until_succeeds("ls /run/http3-ytproxy/socket/http-proxy.sock")
+    curl_assert_status_code("http://invidious.example.com/search", 200)
+    # this should error out as no internet connectivity is available in the test
+    curl_assert_status_code("http://invidious.example.com/vi/dQw4w9WgXcQ/mqdefault.jpg", 502)
+    machine.succeed("journalctl -eu http3-ytproxy.service | grep -o 'dQw4w9WgXcQ'")
+
     postgres_tcp.wait_for_unit("postgresql.service")
     activate_specialisation("postgres-tcp")
     machine.wait_for_open_port(port)