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