at 25.11-pre 1.7 kB view raw
1import ./make-test-python.nix ( 2 { ... }: 3 { 4 name = "trilium-server"; 5 nodes = { 6 default = { 7 services.trilium-server.enable = true; 8 }; 9 configured = { 10 services.trilium-server = { 11 enable = true; 12 dataDir = "/data/trilium"; 13 }; 14 }; 15 16 nginx = { 17 services.trilium-server = { 18 enable = true; 19 nginx.enable = true; 20 nginx.hostName = "trilium.example.com"; 21 }; 22 }; 23 }; 24 25 testScript = '' 26 start_all() 27 28 with subtest("by default works without configuration"): 29 default.wait_for_unit("trilium-server.service") 30 31 with subtest("by default available on port 8080"): 32 default.wait_for_unit("trilium-server.service") 33 default.wait_for_open_port(8080) 34 # we output to /dev/null here to avoid a python UTF-8 decode error 35 # but the check will still fail if the service doesn't respond 36 default.succeed("curl --fail -o /dev/null 127.0.0.1:8080") 37 38 with subtest("by default creates empty document"): 39 default.wait_for_unit("trilium-server.service") 40 default.succeed("test -f /var/lib/trilium/document.db") 41 42 with subtest("configured with custom data store"): 43 configured.wait_for_unit("trilium-server.service") 44 configured.succeed("test -f /data/trilium/document.db") 45 46 with subtest("nginx with custom host name"): 47 nginx.wait_for_unit("trilium-server.service") 48 nginx.wait_for_unit("nginx.service") 49 50 nginx.succeed( 51 "curl --resolve 'trilium.example.com:80:127.0.0.1' http://trilium.example.com/" 52 ) 53 ''; 54 } 55)