nixosTests.trilium-server: handleTest -> runTest

This commit is contained in:
Sizhe Zhao 2025-07-09 12:11:55 +08:00
parent a698ac1214
commit 913252c5aa
No known key found for this signature in database
GPG Key ID: ED1807251A7DA08F
2 changed files with 44 additions and 47 deletions

View File

@ -1454,7 +1454,7 @@ in
tracee = handleTestOn [ "x86_64-linux" ] ./tracee.nix { }; tracee = handleTestOn [ "x86_64-linux" ] ./tracee.nix { };
trezord = runTest ./trezord.nix; trezord = runTest ./trezord.nix;
trickster = runTest ./trickster.nix; trickster = runTest ./trickster.nix;
trilium-server = handleTestOn [ "x86_64-linux" ] ./trilium-server.nix { }; trilium-server = runTestOn [ "x86_64-linux" ] ./trilium-server.nix;
tsm-client-gui = runTest ./tsm-client-gui.nix; tsm-client-gui = runTest ./tsm-client-gui.nix;
ttyd = runTest ./web-servers/ttyd.nix; ttyd = runTest ./web-servers/ttyd.nix;
tt-rss = runTest ./web-apps/tt-rss.nix; tt-rss = runTest ./web-apps/tt-rss.nix;

View File

@ -1,55 +1,52 @@
import ./make-test-python.nix ( {
{ ... }: name = "trilium-server";
{ nodes = {
name = "trilium-server"; default = {
nodes = { services.trilium-server.enable = true;
default = { };
services.trilium-server.enable = true; configured = {
}; services.trilium-server = {
configured = { enable = true;
services.trilium-server = { dataDir = "/data/trilium";
enable = true;
dataDir = "/data/trilium";
};
};
nginx = {
services.trilium-server = {
enable = true;
nginx.enable = true;
nginx.hostName = "trilium.example.com";
};
}; };
}; };
testScript = '' nginx = {
start_all() services.trilium-server = {
enable = true;
nginx.enable = true;
nginx.hostName = "trilium.example.com";
};
};
};
with subtest("by default works without configuration"): testScript = ''
default.wait_for_unit("trilium-server.service") start_all()
with subtest("by default available on port 8080"): with subtest("by default works without configuration"):
default.wait_for_unit("trilium-server.service") default.wait_for_unit("trilium-server.service")
default.wait_for_open_port(8080)
# we output to /dev/null here to avoid a python UTF-8 decode error
# but the check will still fail if the service doesn't respond
default.succeed("curl --fail -o /dev/null 127.0.0.1:8080")
with subtest("by default creates empty document"): with subtest("by default available on port 8080"):
default.wait_for_unit("trilium-server.service") default.wait_for_unit("trilium-server.service")
default.succeed("test -f /var/lib/trilium/document.db") default.wait_for_open_port(8080)
# we output to /dev/null here to avoid a python UTF-8 decode error
# but the check will still fail if the service doesn't respond
default.succeed("curl --fail -o /dev/null 127.0.0.1:8080")
with subtest("configured with custom data store"): with subtest("by default creates empty document"):
configured.wait_for_unit("trilium-server.service") default.wait_for_unit("trilium-server.service")
configured.succeed("test -f /data/trilium/document.db") default.succeed("test -f /var/lib/trilium/document.db")
with subtest("nginx with custom host name"): with subtest("configured with custom data store"):
nginx.wait_for_unit("trilium-server.service") configured.wait_for_unit("trilium-server.service")
nginx.wait_for_unit("nginx.service") configured.succeed("test -f /data/trilium/document.db")
nginx.succeed( with subtest("nginx with custom host name"):
"curl --resolve 'trilium.example.com:80:127.0.0.1' http://trilium.example.com/" nginx.wait_for_unit("trilium-server.service")
) nginx.wait_for_unit("nginx.service")
'';
} nginx.succeed(
) "curl --resolve 'trilium.example.com:80:127.0.0.1' http://trilium.example.com/"
)
'';
}