at 25.11-pre 2.2 kB view raw
1import ./make-test-python.nix ( 2 { lib, ... }: 3 { 4 name = "silverbullet"; 5 meta.maintainers = with lib.maintainers; [ aorith ]; 6 7 nodes.simple = 8 { ... }: 9 { 10 services.silverbullet.enable = true; 11 }; 12 13 nodes.configured = 14 { pkgs, ... }: 15 { 16 users.users.test.isNormalUser = true; 17 users.groups.test = { }; 18 19 services.silverbullet = { 20 enable = true; 21 package = pkgs.silverbullet; 22 listenPort = 3001; 23 listenAddress = "localhost"; 24 spaceDir = "/home/test/silverbullet"; 25 user = "test"; 26 group = "test"; 27 envFile = pkgs.writeText "silverbullet.env" '' 28 SB_USER=user:password 29 SB_AUTH_TOKEN=test 30 ''; 31 extraArgs = [ 32 "--reindex" 33 "--db /home/test/silverbullet/custom.db" 34 ]; 35 }; 36 }; 37 38 testScript = 39 { nodes, ... }: 40 '' 41 PORT = ${builtins.toString nodes.simple.services.silverbullet.listenPort} 42 ADDRESS = "${nodes.simple.services.silverbullet.listenAddress}" 43 SPACEDIR = "${nodes.simple.services.silverbullet.spaceDir}" 44 simple.wait_for_unit("silverbullet.service") 45 simple.wait_for_open_port(PORT) 46 simple.succeed(f"curl --max-time 5 -s -v -o /dev/null --fail http://{ADDRESS}:{PORT}/") 47 simple.succeed(f"test -d '{SPACEDIR}'") 48 49 PORT = ${builtins.toString nodes.configured.services.silverbullet.listenPort} 50 ADDRESS = "${nodes.configured.services.silverbullet.listenAddress}" 51 SPACEDIR = "${nodes.configured.services.silverbullet.spaceDir}" 52 configured.wait_for_unit("silverbullet.service") 53 configured.wait_for_open_port(PORT) 54 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 55 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 56 configured.succeed(f"test -d '{SPACEDIR}'") 57 ''; 58 } 59)