at 24.11-pre 2.0 kB view raw
1import ./make-test-python.nix ({ lib, ... }: { 2 name = "silverbullet"; 3 meta.maintainers = with lib.maintainers; [ aorith ]; 4 5 nodes.simple = { ... }: { 6 services.silverbullet.enable = true; 7 }; 8 9 nodes.configured = { pkgs, ... }: { 10 users.users.test.isNormalUser = true; 11 users.groups.test = { }; 12 13 services.silverbullet = { 14 enable = true; 15 package = pkgs.silverbullet; 16 listenPort = 3001; 17 listenAddress = "localhost"; 18 spaceDir = "/home/test/silverbullet"; 19 user = "test"; 20 group = "test"; 21 envFile = pkgs.writeText "silverbullet.env" '' 22 SB_USER=user:password 23 SB_AUTH_TOKEN=test 24 ''; 25 extraArgs = [ "--reindex" "--db /home/test/silverbullet/custom.db" ]; 26 }; 27 }; 28 29 testScript = { nodes, ... }: '' 30 PORT = ${builtins.toString nodes.simple.services.silverbullet.listenPort} 31 ADDRESS = "${nodes.simple.services.silverbullet.listenAddress}" 32 SPACEDIR = "${nodes.simple.services.silverbullet.spaceDir}" 33 simple.wait_for_unit("silverbullet.service") 34 simple.wait_for_open_port(PORT) 35 simple.succeed(f"curl --max-time 5 -s -v -o /dev/null --fail http://{ADDRESS}:{PORT}/") 36 simple.succeed(f"test -d '{SPACEDIR}'") 37 38 PORT = ${builtins.toString nodes.configured.services.silverbullet.listenPort} 39 ADDRESS = "${nodes.configured.services.silverbullet.listenAddress}" 40 SPACEDIR = "${nodes.configured.services.silverbullet.spaceDir}" 41 configured.wait_for_unit("silverbullet.service") 42 configured.wait_for_open_port(PORT) 43 assert int(configured.succeed(f"curl --max-time 5 -s -o /dev/null -w '%{{http_code}}' -XPUT -d 'test' --fail http://{ADDRESS}:{PORT}/test.md -H'Authorization: Bearer test'")) == 200 44 assert int(configured.fail(f"curl --max-time 5 -s -o /dev/null -w '%{{http_code}}' -XPUT -d 'test' --fail http://{ADDRESS}:{PORT}/test.md -H'Authorization: Bearer wrong'")) == 401 45 configured.succeed(f"test -d '{SPACEDIR}'") 46 ''; 47})